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.