我需要编写一个监控/看门狗程序来检查一系列应用程序
监控程序应该能够
- 确定它正在监视的应用程序是否挂起或没有响应
- 如果挂起,请重新启动特定应用程序
VB.NET 中的哪种 API 可以帮助我实现这一目标?
任何代码示例都会非常有帮助
我需要编写一个监控/看门狗程序来检查一系列应用程序
监控程序应该能够
VB.NET 中的哪种 API 可以帮助我实现这一目标?
任何代码示例都会非常有帮助
您可以使用 System.Diagnostics.Process 来启动/查找您正在观看的进程。根据您正在观看的应用程序,您可以使用以下内容:
For Each proc As Process In System.Diagnostics.Process.GetProcesses
If proc.ProcessName = "notepad" Then
If proc.Responding = False Then
' attempt to kill the process
proc.Kill()
' try to start it again
System.Diagnostics.Process.Start(proc.StartInfo)
End If
End If
Next
确定应用程序是否“挂起”并不总是很清楚。它可能只是忙于做某事。Process.Responding 也需要一个 MainWindow。
这是一个非常简单的例子,但我希望它能为您指明正确的方向。
Roland Bär 于 2004 年在 codeproject.com 上发表了一篇很好的文章,描述了为什么以及如何做到这一点:
http://www.codeproject.com/Articles/8349/Observing-Applications-via-Heartbeat