如何从另一个进程中捕获退出消息?

New*_*bie 1 c++ windows winapi visual-studio-2008

我想"听"其他一些应用程序,并决定在终止时做什么.

怎么样?

编辑:这两个程序在同一台计算机上运行,​​我想知道何时关闭其他程序.然后在其他程序中执行操作.我无法修改其他程序代码.我可能会也可能不会从应用程序A启动应用程序B.我可以通过其完整路径识别应用程序B.

ur.*_*ur. 5

正如Abyx所写,WaitForSingleObject(或可能WaitForMulipleObjects)是您需要的API函数.

  1. 创建一个事件
  2. 启动(工作者)线程
  3. 将事件句柄传递给线程 - > HANDLE1
  4. 获取要监视的进程的句柄.请参阅如何在C++中通过其名称获取进程句柄? - > HANDLE2
  5. 在你的线程函数调用中WaitForMulipleObjects等待两个句柄.
  6. 如果HANDLE2触发,请执行您想要的任何操作......并可能终止该线程.
  7. 如果HANDLE1发射,请离开线程.这是为了优雅地终止您的应用程序:在退出主(GUI)线程之前,您可以设置事件.