2013-04-05 73 views
0

我正在編寫一個程序,它與一些測試設備接口。我希望用戶能夠按下按鈕來停止測試,但只有當程序處於焦點時才能停止測試。這是因爲他們可以同時使用他們的電腦進行其他工作。這是我現在擁有的。僅當窗口焦點時才尋找按鍵

如果((GetAsyncKeyState(VK_ESCAPE)&爲0x8000)& &(GetFocus()== FindWindow函數(NULL,TEXT( 「窗口名稱」)))){

break; 

}

的問題在於,即使用戶在其他程序上工作,按鍵仍然被確定。我也希望在沒有等待用戶輸入的情況下發生這種情況,以便程序可以繼續運行(我知道我可以使用線程,但我認爲在這種情況下似乎有點矯枉過正)。如果有人知道我可以在IF聲明的後半部分中使用的聲明,那將是很棒的,甚至完全不同的方法。

謝謝。

回答

0

野猜這一個。也許你可以使用GetForegroundWindow函數,並根據你的測試窗口句柄檢查句柄。可能更好的方法是讓您的測試窗口處理WM_KEYDOWN消息。我的理解是,只有當窗口具有焦點時纔會發佈此消息。

相關問題