Ver Mensaje Individual
  #5  
Antiguo 05-02-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
HHOOK WHookKeyboard = 0; 
 
//--------------------------------------------------------------------------- 
bool Hook() 
{ 
   if(WHookKeyboard == 0) {
     WHookKeyboard = SetWindowsHookEx(WH_KEYBOARD_LL, reinterpret_cast<HOOKPROC>(KeyboardHookCallBack), HInstance, 0); 
     // Antigua y clásica forma de hacer el casting
     // WHookKeyboard = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardHookCallBack, HInstance, 0);
   }

   return (bool)WHookKeyboard;
} 
 
//--------------------------------------------------------------------------- 
void UnHook() 
{ 
   UnhookWindowsHookEx(WHookKeyboard); 
   WHookKeyboard = 0; 
} 
 
//--------------------------------------------------------------------------- 
LRESULT CALLBACK KeyboardHookCallBack(int Code, WPARAM wParam, LPARAM lParam) 
{ 
   if(Code == HC_ACTION){ 
      // PKBDLLHOOKSTRUCT hs = (PKBDLLHOOKSTRUCT)lParam; 
      PKBDLLHOOKSTRUCT hs = reinterpret_cast<PKBDLLHOOKSTRUCT>(lParam); 
      if (hs->vkCode == VK_SNAPSHOT || hs->vkCode == VK_PRINT){ 
          return -1; // Devolvemos sin permitir el procesado de print screen
      } 
   } 
    
   // Permitimos el proceso del resto del teclado.
   return CallNextHookEx(WHookKeyboard, Code, wParam, lParam); 
}
Saludos.
Responder Con Cita