我有一个c ++控制台应用程序,它启动另一个应用程序并通过com与它通信。我有生成窗口的hWnd,如果COM应用程序不再打开,我希望控制台应用程序自杀。我怎么能这样做?
答案 0 :(得分:3)
由于您已经在应用程序之间进行通信,因此您应该设置一个信号,当窗口关闭时,它会向控制台应用程序发送“我死了”消息。然后,您的控制台应用程序可以正常关闭。
如果你想通过检查hWnd来做到这一点,你可以简单地使用'IsWindow()'函数来告诉你hWnd是否不再有效。您必须通过轮询构造执行此操作。
另一种选择,如果其他应用程序不是你的,这个更有用的是安装一个钩子并观察要销毁的窗口。如果你想这样做,看看窗户挂钩,CBT挂钩是合适的,你可以很容易地看到窗户被摧毁。
答案 1 :(得分:0)
调用GetWindowThreadProcessId()然后调用OpenProcess()。您现在可以测试是否发出了进程句柄信号,或者测试是否发生了Wait()。