Programar teclas de atalho do Windows no Delphi
Gostaria de programar algumas teclas de atalho para chamar, por exemplo, uma calculadora, quando seu aplicativo estiver aberto? Solução:
Inclua na seção uses: Windows, Dialogs - No evento OnCreate do form coloque o código abaixo: procedure TForm1.FormCreate(Sender: TObject); begin if not RegisterHotkey(Handle, 1, MOD_CONTROL or MOD_ALT, VK_F11) then ShowMessage('Erro ao programar Ctrl+Alt+F11'); if not RegisterHotkey(Handle, 2, MOD_CONTROL or MOD_ALT, VK_F12) then ShowMessage('Erro ao programar Ctrl+Alt+F12'); end; - No evento OnDestroy do form coloque o código abaixo: procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotkey(Handle, 1); UnRegisterHotkey(Handle, 2); end; - Declere a procedure abaixo na seção private: private procedure WMHotkey(var Msg: TWMHotkey); message WM_HOTKEY; - Abaixo da palavra implementation escreva a procedure: procedure TForm1.WMHotkey(var Msg: TWMHotkey); begin case Msg.HotKey of 1: WinExec('calc.exe', SW_SHOW); 2: ShowMessage('Ctrl+Alt+F12 foram pressionadas'); end; end; - Execute este programa e experimente pressionar Ctrl+Alt+F11 ou Ctrl+Alt+F12.
Observações
Se a combinação de teclas já estiver em uso (num atalho, por exemplo), não será possível usá-la em nossa aplicação. Existem outras formas de implementar teclas de atalho em programas escritos em Delphi, mas a forma apresentada é bastante funcional.