Powershell 将按钮添加到通知图标

Powershell 将按钮添加到通知图标,powershell,contextmenu,notifyicon,Powershell,Contextmenu,Notifyicon,我想看到一个小的通知图标,表明我编写的脚本仍然处于活动状态(脚本和显示图标都有效)。但是我需要图标上下文菜单中的一个按钮来立即停止脚本。这就是我的问题所在: $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon $objContextMenu = New-Object System.Windows.Forms.ContextMenu $ExitMenuItem = New-Object System.Windows.Forms.

我想看到一个小的通知图标,表明我编写的脚本仍然处于活动状态(脚本和显示图标都有效)。但是我需要图标上下文菜单中的一个按钮来立即停止脚本。这就是我的问题所在:

$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon 
$objContextMenu = New-Object System.Windows.Forms.ContextMenu
$ExitMenuItem = New-Object System.Windows.Forms.MenuItem

$ExitMenuItem.add_Click({
   echo stoped
   $continue = $False
   $objNotifyIcon.visible = $False
})

$objContextMenu.MenuItems.Add($ExitMenuItem) | Out-Null
$objNotifyIcon.ContextMenu = $objContextMenu
$objNotifyIcon.Visible = $True
脚本本身较长,这只是相关部分。如果我从PowerShell ISE运行它,它工作得很好。当我使用.bat文件运行它时

powershell .\myscript.ps1

上下文菜单不再工作。

这只是猜测,但请尝试在以下模式下运行脚本:


请比“上下文菜单不再工作”更具体一些。-右键单击Notify图标时它是否不再显示?它是否显示,但单击时没有效果?您是否遇到意外错误?您的PowerShell和Windows版本是什么?检查控制台和ISE中的是否相同(
$host.RunSpace.ApartmentModel
)。太好了,谢谢!用-sta启动powershell就做到了。
powershell -STA -File .\myscript.ps1