42 lines
1.2 KiB
PowerShell
42 lines
1.2 KiB
PowerShell
[CmdletBinding(
|
|
SupportsShouldProcess = $true
|
|
)]
|
|
Param(
|
|
[Parameter(Mandatory = $false)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[ValidateSet("Info", "Warning", "Error", "None")]
|
|
[string]$Type,
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[string]$Title,
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[string]$Text,
|
|
[Parameter(Mandatory = $false)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[int]$Timeout = 10
|
|
)
|
|
|
|
#Ajouter les librairies Windows
|
|
Add-Type -AssemblyName System.Windows.Forms
|
|
Add-Type -AssemblyName System.Drawing
|
|
|
|
#Créer l'objet notification
|
|
$notify = new-object system.windows.forms.notifyicon
|
|
$notify.icon = [system.drawing.icon]::ExtractAssociatedIcon((join-path $pshome powershell.exe))
|
|
$notify.visible = $True
|
|
|
|
$notify.showballoontip($Timeout, $title, $text, $type)
|
|
|
|
switch ($Host.Runspace.ApartmentState) {
|
|
STA {
|
|
$null = Register-ObjectEvent -InputObject $notify -EventName BalloonTipClosed -Action {
|
|
$Sender.Dispose()
|
|
Unregister-Event $EventSubscriber.SourceIdentifier
|
|
Remove-Job $EventSubscriber.Action
|
|
}
|
|
}
|
|
default {
|
|
continue
|
|
}
|
|
} |