_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 25 May, 2004 11:02 pm Asunto: |
|
|
Si usas Windows NT/2000/XP/2003 puedes crear un hook de bajo nivel al teclado (en Windows 95/98/ME no existe este tipo de hooks).
Por ejemplo, creando una dll con el siguiente código:
| Código: | #include <windows.h>
HHOOK g_hookHandle;
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
if (code >= 0)
{
PKBDLLHOOKSTRUCT hs = reinterpret_cast<PKBDLLHOOKSTRUCT>(lParam);
if (hs->vkCode == VK_SNAPSHOT || hs->vkCode == VK_PRINT)
{
return -1;
}
}
return CallNextHookEx(g_hookHandle, code, wParam, lParam);
}
int WINAPI DllEntryPoint(HINSTANCE hInst, unsigned long reason, void*)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
g_hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL,
reinterpret_cast<HOOKPROC>(KeyboardProc), hInst, 0);
break;
case DLL_PROCESS_DETACH:
UnhookWindowsHookEx(g_hookHandle);
}
return g_hookHandle != 0;
} |
Y cargándola desde tu programa con:
| Código: | LoadLibrary("<el nombre que le has dado a la dll>"); |
(Descargándola con "FreeLibrary" desactivas el hook)
Aun así siempre habrá formas de capturar tus ventanas sin grandes complicaciones. Incluso por mucho que lo compliques siempre será posible usar un monitor TFT y una cámara y conseguir una captura casi tan buena como con esa tecla...  |
|