2013-10-20 24 views
1

我正在做一個應用程序來改變另一個窗口中的一些信息。 問題是,有時會導致窗口「無法響應」。C++ - 看看一個hWnd窗口是否響應?

所以我的問題是,使用C++,如何檢查窗口是否仍在運行?

我用這個來看看我的窗口:

HWND hWnds = FindWindow(0, WindowName); 

if (hWnds <= 0) { 
     gameFound = false; 
} else { 
     DWORD pId; 
     GetWindowThreadProcessId(hWnds, &pId); 
     hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId); 

     if (!hProc) { 
       std::cout << "Failed."; 
     } else { 
       std::cout << "Window Found!"; 
+1

不要這樣做,而是試圖找出*爲什麼*您的程序停止響應。一種方法是通過在調試器中運行,另一種方法是通過大量的日誌記錄。 –

回答

0

Windows會定期發出詢問如果程序是活的,然後等待它響應的事件。如果它在一定時間內沒有響應,它會認爲它已經崩潰並且說「沒有響應」。所以你需要做的是處理窗口事件。