2008-12-24 4 views
1

Je travaille sur un programme C++ win32 qui nécessite un hook au clavier. L'application est un projet win32 sans aucune interface utilisateur. J'ai besoin de garder l'application de la fermeture sans utiliser l'hameçon pour ne pas fonctionner ou utiliser un tas de ressources système. J'avais l'habitude d'utiliser une boîte de message, mais j'ai besoin de l'application pour être complètement invisible.Conserver une application sans forme de fermeture pour un hook de clavier

Toute aide serait appréciée!

Si vous avez des questions, il suffit de demander.

Répondre

7

Je pense que ce dont vous avez besoin est message only window

(MSDN dit) Une fenêtre de message ne vous permet d'envoyer et de recevoir des messages. Il n'est pas visible, n'a pas d'ordre z, ne peut pas être énuméré et ne reçoit pas de messages diffusés. La fenêtre distribue simplement les messages.

-3

Une meilleure façon serait d'ajouter une boucle qui continue de circuler.

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

Avez-vous vraiment besoin de Windows? Le MSDN LowLevelKeyboardProc page recommande d'utiliser une simple boucle de message. Insérez simplement cet extrait après l'appel du hook.

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