2008-12-24 55 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); 
}