Ver Mensaje Individual
  #4  
Antiguo 22-11-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Puedes hacerlo como quieras. El Hook engancha antes de procesar la pulsación. HotKey te envía un mensaje.
El problema es actuar en el ClipBoard, tienes que trampearlo.

No es necesaria una dll para un hook de teclado, hazlo a bajo nivel.

Te muestro un ejemplo simple para evitar la copia al ClipBoard con un Hook LL al teclado:

Código PHP:
HHOOK  hKeybHook;

LRESULT WINAPI KeybEvent(int nCode, WPARAM wParam, LPARAM lParam)
{
   if( (
nCode == HC_ACTION) && ((wParam == WM_SYSKEYDOWN) || (wParam == WM_KEYDOWN)) ){

     
bool Ctl_C = GetAsyncKeyState(VK_CONTROL) && (*(PDWORD)lParam == 0x43); //VK_C;
     
bool Ctl_V = GetAsyncKeyState(VK_CONTROL) && (*(PDWORD)lParam == 0x56); //VK_V;

     
if(Ctl_C){
       
CloseClipboard();
       
OpenClipboard(0);
       
EmptyClipboard();
     }
     else if(
Ctl_V) 
       
CloseClipboard();
   }

   return 
CallNextHookEx(hKeybHook, nCode, wParam, lParam);
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
hKeybHook  = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeybEvent, GetModuleHandle(NULL), 0);
  
Beep(1000, 100);
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  
UnhookWindowsHookEx(hKeybHook);
  
CloseClipboard();
} 
Saludos.
Responder Con Cita