Ver Mensaje Individual
  #10  
Antiguo 23-11-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
Bueno, me he decidido por usar el registrado de los atajos y tengo esto:
Código PHP:
private:    // User declarations
   
bool AtajosGlobales;
   
TMessageEvent OldApplicationOnMessage;

protected:
   
virtual void __fastcall AppMessage(tagMSG &Msgbool &Handled); 
Código PHP:
void __fastcall TForm1::AppMessage(tagMSG &Msgbool &Handled)
{
   if(
Msg.message == WM_HOTKEY)
   {
      
//Comprobamos si se pulsó algún atajo de teclado

      
if((LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'L'))
      {
         
ButtonClic->Click();
         
Sleep(150);
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'C'))
      {
         
ButtonClose->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'D'))
      {
         
ButtonDisable->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'A'))
      {
         
ButtonEnable->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'M'))
      {
         
ButtonShow->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'O'))
      {
         
ButtonHide->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'X'))
      {
         
ButtonMaximize->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'R'))
      {
         
ButtonRestore->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'I'))
      {
         
ButtonMinimize->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'S'))
      {
         
ButtonTopmost->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'N'))
      {
         
ButtonNonTop->Click();
      }else if((
LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 'E'))
      {
         
ButtonSendCaption->Click();
      }else{
         
OldApplicationOnMessage(Msg,Handled);
      }
   }else{
      
OldApplicationOnMessage(Msg,Handled);
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *SenderTCloseAction &Action)
{
   if(
AtajosGlobales == true)
   {
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey1"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey2"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey3"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey4"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey5"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey6"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey7"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey8"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey9"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey10"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey11"));
      
UnregisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey12"));
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   
OldApplicationOnMessage Application->OnMessage;
   
Application->OnMessage AppMessage;

   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey1"), MOD_CONTROL,'L');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey2"), MOD_CONTROL,'C');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey3"), MOD_CONTROL,'D');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey4"), MOD_CONTROL,'A');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey5"), MOD_CONTROL,'M');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey6"), MOD_CONTROL,'O');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey7"), MOD_CONTROL,'X');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey8"), MOD_CONTROL,'R');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey9"), MOD_CONTROL,'I');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey10"), MOD_CONTROL,'S');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey11"), MOD_CONTROL,'N');
   
RegisterHotKey(Application->HandleGlobalAddAtomA("MiHotKey12"), MOD_CONTROL,'E');

Lo que quiero es que cuando no sea uno de los atajos que yo he registrado el programa el resto funcione perfectamente pero no consigo ni que compile. ¿alguna ayuda para hacerlo bien?
Responder Con Cita