TForm1 = class(TForm)
..
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
nHotKeyF2 : Integer;
procedure WMHotKey(var Message: TWMHotKey); message WM_HOTKEY;
end;
핫키를 등록합니다.
procedure TForm.FormCreate(Sender: TObject);
begin
nHotKeyF2 := GlobalAddAtom('DevelopistF2'); //윈도우에 나만의 핫키를 만듭니다.
RegisterHotkey(Handle, nHotKeyF2, 0, VK_F2); //만들어진 핫키를 등록합니다.
//세번째 파라미터는 키 조합입니다. Ex) Ctrl + C, F2.. 등
//참조 -> https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-registerhotkey
//네번째 파라미터는 키 값입니다.
//참조 -> https://docs.microsoft.com/ko-kr/windows/desktop/inputdev/virtual-key-codes
end;
종료전 핫키를 해제합니다.
procedure TForm1.FormDestroy(Sender: TObject);
procedure RemoveHotKey(nHotKeyID : Integer);
begin
UnregisterHotKey(Handle, nHotKeyID);
GlobalDeleteAtom(nHotKeyID);
end;
begin
if nHotKeyF2 <> 0 then RemoveHotKey(nHotKeyF2); //등록된 핫키가 존재하면 해제합니다.
end;
핫키를 확인하고 원하는 프로세스를 실행합니다.
procedure TForm.WMHotKey(var Message: TWMHotKey);
begin
if Message.HotKey = nHotKeyF2 then
begin
{To Do}
ShowMessage('F2를 눌렀습니다!');
end;
end;