我想看一个小的通知图标,表明我写的脚本仍处于活动状态(脚本和显示图标都有效)。但是我需要在图标的上下文菜单中使用一个按钮来立即停止脚本。这就是我的问题所在的部分:
$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
上下文菜单不再有效。
答案 0 :(得分:1)
这只是一个猜测,但尝试在Single Thread Apartment模式下运行脚本:
powershell -STA -File .\myscript.ps1