Ver Mensaje Individual
  #4  
Antiguo 22-11-2014
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
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 nCodeWPARAM wParamLPARAM 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(hKeybHooknCodewParamlParam);
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
hKeybHook  SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeybEventGetModuleHandle(NULL), 0);
  
Beep(1000100);
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  
UnhookWindowsHookEx(hKeybHook);
  
CloseClipboard();

Saludos.
Responder Con Cita