Delphi全局熱鍵的注冊


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM