在我的系统上有一个运行的应用程序(App.exe),但有时会终止(优雅且期待)。与此同时,我有另一个应用程序,当App.exe停止时,需要执行某些任务。所以我需要一种从我的应用程序监视App.exe的方法。
以下是我想要完成的事情
If (App.exe is running wait 360 seconds for it to terminate)
if (App.exe is not running anymore)
do the work I need to do when App.exe is NOT running
所以,他们的KEY是:
现在这不是很难,如果我的应用程序是onw启动/ spwaned App.exe(使用CreateProcess和WaitForExit的东西),但在这种情况下我不是控制代理...所以我如何监视看到如果App.exe仍然在运行并因此等待(在一段时间内X),以便在执行特定操作之前结束它吗?
非常感谢任何提示,帮助或建议。 谢谢,
答案 0 :(得分:1)
您可以使用ToolHelp API(带有TH32CS_SNAPPROCESS和Process32Next的CreateToolhelp32Snapshot)来获取任何正在运行的app.exe进程的进程ID。从那里你可以使用OpenProcess获取一个句柄,然后你可以使用等待终止。
答案 1 :(得分:0)
如何调用FindWindow来获取句柄(或者如果应用程序可以有多个实例,或者根据打开的文档更改其标题,则处理),调用GetWindowThreadProcessId和OpenProcess来转换它,然后调用WaitForSingleObject?
答案 2 :(得分:-1)
我相信你可以使用GetProcessesByName()。