2010-08-11 19 views
5

Je veux faire un crochet qui agira comme "événement" (et non avec agly GetAsyncKeyState) en C# (je veux le faire en C++). donc, j'ai fait une DLL avec ce contenu: http://pastebin.com/yEHJKSS7.bas niveau Hooker

bien, il n'appelle pas à la fonction Handler.

en passant, voici comment je le dll:

void KeysHandler(int vkKey, int flags) 
{ 
    if(vkKey == VK_ESCAPE) 
     exit(0); 
    File << vkKey << endl << flags << endl; 
} 

int main 
{ 
    SetHandler(HandlerFunc); 
    //sleep here 
} 

edit: je voyais maintenant comment je peux « debug » dans le dll, voici les résultats: le SetWindowsHookEx retourne 255 - Je pense qu'il est Starnge parce que cela vaut la peine de charmer exactement - Je vais vérifier dans la documentation ce que cela signifie.

edit: 255 est la valeur de retour valide: O seulement NULL (0) est l'erreur.

Je n'ai aucune idée de quel est le problème. Edit: Eh bien, maintenant mon ami m'a apporté une pute qui a travaillé pour lui. et devinez ... ça n'a pas marché.

J'ai décidé que c'était très étrange, donc j'ai fait GetLastError et j'ai obtenu 127 - procédure introuvable. Je ne vois aucune raison pour ma procédure ne sera pas trouvée, l'aide s'il vous plaît :(

+11

Patty le talonneur de jour de bas niveau? –

+37

+1 pour un titre qui m'a fait lire cette question :) –

+12

Titre m'a intrigué, question réelle m'a déçu. –

Répondre

1

est votre principal SetHandler vraiment appeler seulement suivi par le sommeil?

Vous avez besoin d'un MessageLoop pour que tous les événements à appelé

+0

pour l'instant, je tente le talonneur sur la fenêtre de la console. dans le SetWindowHookEX il devrait y avoir la "boucle de message" du clavier, et la procédure est également dans la DLL. @Philipp & (|) Frank: Je suis vraiment désolé que ma langue maternelle n'est pas l'anglais. Je fais de mon mieux. – Ohad

+0

OK, j'ai trouvé une direction (j'ai édité, question y), mais je ne sais pas exactement ce qu'il se passe, car mon ami m'a dit que ça marchait pour lui. – Ohad