Problemas con Keylogger y VirtualKeys

Iniciado por XxXMotokoXxX, 28 Agosto 2013, 20:14 PM

0 Miembros y 2 Visitantes están viendo este tema.

XxXMotokoXxX

Buenas tardes señores,

Me preguntaba si existiría alguna función que sirviera para detectar los "keystrokes" de un teclado pero que sea sensible a los caracteres especiales y a las minúsculas porque si lo intento hacer con la función GetAsyncKeyState() me he dado cuenta de que no me detecta las letras minúsculas ni caracteres especiales, sólo me detecta las mayúsculas y las teclas del teclado.

He leído por ahí que existe una manera de que detecte el lenguaje del teclado y de esta manera traduce las combinaciones de teclas ALT, CTRL y SHIFT a su correspondiente código ASCII pero en este punto me encuentro atascado.

Estoy programando en C++. ¿Me podrían ayudar con este problema? ¿Me podrían ayudar a encontrar un buen tutorial o PDF que me enseñe bien todos los secretos de la "header" <windows.h>? Se agradecería que me pusieran un ejemplo de cómo usar esa mágica función que busco.

Gracias!!

P.D.: Estoy trabajando y programando en y para un SO Windows 7.

XxXMotokoXxX

#1
Bueno señores me he vuelto como loco buscando en nuestro queridísimo Google como detectar todas las teclas del teclado y con su interpretación en el "keystroke" de las mayúsculas pero me he encontrado con un problema en mi código y es que el keylogger me detecta la tecla pulsada dos veces: Una vez cuando la aprieto y otra vez cuando levanto la tecla y solo quiero que me detecte cuando pulso la tecla. Ahí les dejo mi código:

#include <iostream>
#include <Windows.h>
#include <fstream>

HHOOK hHook = NULL;

using namespace std;

LRESULT CALLBACK p**a(int nCode, WPARAM wParam, LPARAM lParam)
{
   cout << "Hola, me pulsaste!\n";
   return CallNextHookEx(hHook, nCode, wParam, lParam);
}

int main ()
{
   hHook = SetWindowsHookEx(WH_KEYBOARD_LLñor, p**a, NULL, 0);
   if (hHook == NULL)
   {
       cout << "Nada de nada, hijo p**a!\n";
   }


   //Esto solo sirve para mantener el cmd abierto
   MSG msg;
   while(GetMessage(&msg, NULL, 0, 0))
   {

   }
   return 0;
}




EI: juntando mensajes, la proxima borro.



Nada señores, ya resolví el problema que tenía con que me detectaba un doble keystroke para cuando pulso la tecla y cuando la dejo de pulsar... pero aún sigo teniendo problemas con la detección de caracteres especiales... quiero que mi Keylogger sea lo suficientemente inteligente como para que me detecte la configuración de teclado que uso y me lea las Ñ's entre otros caracteres españoles... (o de cualquier otro idioma... como si es ruso!! jajaja).

¿Ideas?