簡體   English   中英

如果hWnd不存在,則殺死自己

[英]Kill self if hWnd doesn't exist

我有一個c ++控制台應用程序,它可以啟動另一個應用程序並通過com與之通信。 我具有生成的窗口的hWnd,並且如果COM應用程序不再打開,我希望控制台應用程序自行終止。 我該怎么做呢?

由於您已經在應用程序之間進行通信,因此應該設置一個信號,當窗口關閉時,它會向控制台應用程序發送“ I'm dead”消息。 然后,您的控制台應用程序可以正確關閉。

如果要通過檢查hWnd來執行此操作,則可以簡單地使用“ IsWindow()”函數,該函數將讓您知道hWnd是否不再有效。 您將必須通過輪詢構造來執行此操作。

另一個選擇是安裝鈎子並觀察窗戶是否被破壞,如果不是其他應用程序,則更有用。 如果要執行此操作,請查看Windows掛鈎,最好使用CBT掛鈎,您可以輕松地查看窗戶是否被破壞。

調用GetWindowThreadProcessId(),然后調用OpenProcess()。 現在,您可以測試過程句柄是否已發出信號,或測試Wait()使其發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM