从 Windows 任务栏通知区域删除已终止的进程

从 Windows 任务栏通知区域删除已终止的进程

有些 Windows 程序会在任务栏通知区域创建图标。即使这些进程被终止,它们的任务栏图标仍会保留在那里,直到您将鼠标悬停在它上面,它才会消失。有没有其他方法可以让它们消失,而不必将鼠标悬停在它们上面?

答案1

不幸的是,答案是否定的 - 而且在 Windows Vista 和 Windows 7 上也是如此。

原因是它们由 Explorer 进程显示,除非应用程序安全退出,否则它不会向 Explorer 发送有关处置图标的通知。

除了关闭并重新打开 explorer 本身,我不确定还有什么方法可以实现这一点。我猜这在技术上是可行的,因为我记得几年前上学时使用过一个名为 Dohide 的程序,它可以隐藏正在运行的进程。但这只是隐藏,它没有检测和关闭正在运行的进程……

... 无论如何,我从未遇到过任何应用程序会这样做。坦率地说,如果应用程序崩溃了,制造商/开发人员应该真正着手修复它,将鼠标移到图标上确实可以解决问题,所以我猜没人认为值得创建一个应用程序或解决这个问题。

答案2

马修的脚本似乎将光标移动得太快而无法清除我的图标,所以我对它进行了一些修改:

Add-Type -AssemblyName System.Windows.Forms
$screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
$x = $screen.Width
$y = $screen.Height - 30
$end = $screen.Width / 3 * 2
while ($x -gt $end) {
    [Windows.Forms.Cursor]::Position = "$x, $y"
    $x -= 20
    sleep -m 1
}

答案3

这是一个你可能不会喜欢的 hack :D

用鼠标擦拭系统托盘..

Add-Type -AssemblyName System.Windows.Forms $screen = [System.Windows.Forms.SystemInformation]::VirtualScreen $trayheight = $($screen.Height) -50 # maybe alter the height to suit your resolution $start = ($($screen.Width) / 5)*3 $start..$($screen.Width) | %{ [Windows.Forms.Cursor]::Position = "$_,$trayheight" }

相关内容