1. 程式人生 > >Delphi全局熱鍵的註冊

Delphi全局熱鍵的註冊

ebo delet add lose 全局熱鍵 pan div 一個 ssa

1.在窗啟動時創建ATOM;(aatom:ATOM;定義在private中)

1   if FindAtom(ZWXhotKey)=0 then
2   begin
3     aatom:=GlobalAddAtom(ZWXhotKey);
4   end;
5   if RegisterHotKey(Handle,aatom,MOD_ALT,$41) then
6   begin
7     MessageBox(Handle,按alt+a,提示,MB_OK);
8   end;

2.定義處理熱鍵的消息過程(定義在private中,下面二個處理消息的過程是一樣的)

1     procedure hotkey(var msg:TMessage);message WM_HOTKEY;//定義全局熱鍵消息事件
2   //procedure hotkey2(var msg:TWMHotKey);message WM_HOTKEY;//同上

3.消息過程的處理(下面二個IF任選一個即可,如果msg在步驟2定義成TWMHotKey,則不用轉換)

 1 procedure TForm2.hotkey(var msg: TMessage);
 2 begin
 3   if TWMHotKey(msg).HotKey=aatom then
 4   begin
5 //ShowMessage(‘s‘); 6 end; 7 if (msg.LParamHi=$41) and (msg.LParamLo=MOD_ALT) then 8 begin //處理事情 13 end; 14 end;

4.程序關閉時,刪除熱鍵和原子

1 procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
2 begin
3   UnregisterHotKey(Handle,aatom);
4   GlobalDeleteAtom(aatom);
5 end;

Delphi全局熱鍵的註冊