如果 Windows 中正在运行特定进程,则显示托盘/通知

如果 Windows 中正在运行特定进程,则显示托盘/通知

我在 Windows 8 上运行。

我经常在电脑的后台运行 nginx 和 vagrant。这些程序没有用户界面。我唯一能知道它们是否正在运行的方法是查看任务管理器或从 Mingw 执行“ps”。

如果进程正在运行,我想显示一个微妙的视觉指示,如果进程未运行,则删除该指示。我该怎么做?

更多信息:

  • 托盘项目是一个很好的视觉指示器。右上角的透明状态消息也很好。
  • 我运行 mingw 和 cygwin。因此,标准 Windows 解决方案、powershell 或其中一个解决方案也可以
  • 我想象在 mingw 中有一种方法可以每 60 秒轮询一次 ps 的结果,并根据结果以某种方式切换图标......但是如何做呢?

更新:已提供答案。这是我的最终 AutoIt 脚本。它仅使用 1.5 MB 内存运行,并且可以像任何托盘图标/通知一样进行管理:

$run=1
while $run
 if processexists("nginx.exe") Then
  TraySetIcon("C:\Users\jens\Workspaces\AutoItScripts\nginx_on.ico")
 Else
  TraySetIcon("C:\Users\jens\Workspaces\AutoItScripts\nginx_off.ico")
 EndIf
 sleep(30000) ;wait 30 seconds
wend

答案1

您可以用免费软件语言 AutoIt 编写一个简单的程序来完成此任务。这真的很容易。让我马上试试……

$run=1
while $run
 if processexists("calc.exe") Then
  traytip("program running","calc.exe",30)
 Else
  TrayTip("clears any tray tip", "", 0)
 EndIf
 sleep(500) ;wait 500ms
wend

如果你安装了 autoit 并编译它,你就得到了你所需要的。如果你愿意的话,我可以用托盘图标出现和消失来制作更漂亮的东西,而不是托盘提示气泡 :)

相关内容