# Importations + out-null pour ne pas afficher la sortie (output de la console)
[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Drawing') | out-null
# Icône d'un exécutable
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon("c:\windows\explorer.exe")
# Création d'une icône dans la zone de notification
$toolNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
$toolNotifyIcon.Text = "Outil zone de notification"
$toolNotifyIcon.Icon = $icon
$toolNotifyIcon.Visible = $true
# Création d'un menu pour ouvrir l'explorateur de fichiers
$openExplorerMenuItem = New-Object System.Windows.Forms.MenuItem
$openExplorerMenuItem.Text = "Ouvrir l'explorateur de fichiers"
# Création d'un menu pour quitter
$exitMenuItem = New-Object System.Windows.Forms.MenuItem
$exitMenuItem.Text = "Quitter"
# Ajoute les menus contextuels
$contextmenu = New-Object System.Windows.Forms.ContextMenu
$toolNotifyIcon.ContextMenu = $contextmenu
$toolNotifyIcon.contextMenu.MenuItems.AddRange($openExplorerMenuItem)
$toolNotifyIcon.contextMenu.MenuItems.AddRange($exitMenuItem)
# Action pour le menu "Ouvrir l'explorateur de fichiers"
$openExplorerMenuItem.add_Click({
#Ouvre l'explorateur de fichiers
Invoke-Item c:\windows\explorer.exe
})
# Action pour le menu "quitter"
$exitMenuItem.add_Click({
#Quitte l'application
$toolNotifyIcon.Visible = $false
$window.Close()
Stop-Process $pid
})
# Démarre l'application
$appContext = New-Object System.Windows.Forms.ApplicationContext
[void][System.Windows.Forms.Application]::Run($appContext)
Commentaires
Enregistrer un commentaire