我正在编写一个与某些测试设备接口的程序。我希望用户能够按下按钮来停止测试,但前提是该程序是焦点。这是因为他们可以同时使用他们的电脑进行其他工作。这就是我现在所拥有的。
if((GetAsyncKeyState(VK_ESCAPE)& 0x8000)&&(GetFocus()== FindWindow(NULL,TEXT(“Window name”)))){/ p>
break;
}
问题是,即使用户正在处理其他程序,仍然会确定按键。我也希望在没有等待用户输入的情况下发生这样的事情,所以程序可以继续运行(我意识到我可能会使用线程,但我认为在这种情况下看起来有点过分)。如果有人知道我可以在IF语句的后半部分使用的声明,那将是很好的,甚至是完全不同的方法。
谢谢。
答案 0 :(得分:0)
疯狂猜测这个。也许你可以使用GetForegroundWindow函数并检查你的测试窗口句柄的句柄。可能更好的方法是让您的测试窗口处理WM_KEYDOWN消息。我的理解是,只有在窗口具有焦点时才会发布此消息。