2008-12-24 59 views
1

我正在涉及键盘挂钩的c + + win32程序。该应用程序是一个没有用户界面的win32项目。我需要保持应用程序不关闭而不会导致挂钩无法工作或耗尽一堆系统资源。我曾经使用过一个消息框,但我需要应用程序完全不可见。保持从键盘钩关闭的无形应用程序

任何帮助,将不胜感激!

如果您有任何问题,请询问。

回答

7

我想你需要的是message only window

MSDN说:)的消息,唯一窗口,您可以发送和接收消息。它不可见,没有z顺序,不能枚举,也不会收到广播消息。窗口只是发送消息。

-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); 
0

你真的需要windows吗? MSDN LowLevelKeyboardProc page建议使用简单的消息循环。 只需在挂钩呼叫后插入此片段即可。

// message loop to keep the keyboard hook running 
MSG msg; 
while(GetMessage(&msg, NULL, 0, 0) > 0) 
{ 
    TranslateMessage(&msg); 
    DispatchMessage(&msg); 
}