2010-08-11 25 views
5

Quiero hacer un enlace que actuará como "evento" (y no con GetAsyncKeyState agly) en C# (quiero hacerlo en C++). , así que hice un dll con este contenido: http://pastebin.com/yEHJKSS7.nivel bajo Hooker

bien, no llama a la función de controlador.

por cierto, aquí es cómo utilicé la DLL:

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

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

edición: ahora veía cómo puedo "depuración" en la DLL, aquí están los resultados: la SetWindowsHookEx regresa 255 - Creo que es starnge porque vale la pena char exactamente - Voy a verificar en la documentación lo que significa.

editar: 255 es el valor de retorno válido: O solo NULL (0) es un error.

No tengo idea de cuál es el problema.

editar: bueno, ahora mi amigo me trajo una prostituta que funcionó para él. y supongo ... que no funcionó.

Decidí que era muy extraño, así que hice GetLastError y obtuve 127 - El procedimiento no se ha encontrado. No veo ninguna razón por la que no se puede encontrar mi procedimiento, ayuda por favor :(

+11

Patty la prostituta diurna de bajo nivel? –

+37

+1 por un título que me hizo leer esta pregunta :) –

+12

Título me intrigó, la pregunta real me decepcionó. –

Respuesta

1

Es su principal SetHandler realmente sólo llamar seguido por el sueño?

Se necesita una MessageLoop a fin de que cualquier evento que sean llamado.

+0

por el momento, pruebo el hooker en la ventana de la consola. en el SetWindowHookEX debería haber un "bucle de mensaje" del teclado, y el procedimiento también está en el dll. @Philipp & (|) Frank: Lamento mucho que mi lengua materna no sea el inglés. Hago mi mejor. – Ohad

+0

OK, encontré una dirección (la edité, una pregunta), pero no sé exactamente qué sucede, porque mi amigo me dijo que funciona para él. – Ohad

Cuestiones relacionadas