我正在研究一个涉及键盘钩子的c ++ win32程序。该应用程序是一个win32项目,没有任何用户界面。我需要保持应用程序不关闭而不使用挂钩不工作或耗尽大量系统资源。我曾经使用过消息框,但我需要应用程序完全不可见。
任何帮助将不胜感激!
如果您有任何问题,请询问。
答案 0 :(得分:7)
我认为您需要的是message only window
( MSDN说 )仅限消息窗口可让您发送和接收消息。它不可见,没有z顺序,无法枚举,也不接收广播消息。该窗口只是发送消息。
答案 1 :(得分:0)
// message loop to keep the keyboard hook running
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
答案 2 :(得分:-3)
更好的方法是添加一个循环的循环。
bool shouldExit = false;
do
{
//some code to handle events
shouldExit = handleEvents();
//sleep for a small bit so we dont take up 100% cpu
sleep(500);
}
while (!shouldExit);