rad studio 10.2.3 測試√
全域性變數:
var
mhotkey01, mhotkey02: integer;
1、在程式建立的時候或者窗體顯示的時候註冊熱鍵
begin
// 原子【mhotkey01】
mhotkey01 :
=globaladdatom
('xiaoyin_hotkey_ctrl_f1'
)- $c000;
//註冊熱鍵【ctrl + f1】
registerhotkey
(handle, mhotkey01, mod_control, vk_f1)
;// 原子【mhotkey02】
mhotkey02 :
=globaladdatom
('xiaoyin_hotkey_shift_ctrl_f1'
)- $c000;
//註冊熱鍵【ctrl + shift + f1】
registerhotkey
(handle, mhotkey02, mod_control + mod_shift, vk_f1)
;// 如有更多需求,以此類推即可
end;
2、上面註冊成功後,此時的熱鍵已經生效,下面就是給相應的熱鍵新增事件
注意:需要宣告方法【不管是public還是private還是別的下面都行】***是寫在 private 下的
private
procedure hotkeydown
(var msg: tmessage)
; message wm_hotkey;
// 註冊的熱鍵系統收到觸發的訊息就會程式,然後執行這個方法
procedure tform1.
hotkeydown
(var msg: tmessage)
;begin
// 如果 熱鍵值對上了
if(msg.lparamlo = mod_control)
and(msg.lparamhi = vk_f1) then
begin
showmessage
('ctrl + f1 呼叫成功');
end;
if(msg.lparamlo = mod_control + mod_shift)
and(msg.lparamhi = vk_f1) then
begin
showmessage
('ctrl + shift + f1 呼叫成功');
end;
end;
3、用完之後一定記得需要刪除熱鍵,不管是在窗體關閉的情況下,還是在銷毀的情況下使用都可以
begin
// 釋放熱鍵【ctrl + f1】
unregisterhotkey
(handle, mhotkey01)
;// 刪除原子【mhotkey01】
globaldeleteatom
(mhotkey01)
;// 釋放熱鍵【ctrl + shift + f1】
unregisterhotkey
(handle, mhotkey02)
;// 刪除原子【mhotkey02】
globaldeleteatom
(mhotkey02)
;end;
一點點筆記,以便以後翻閱。 Delphi全域性熱鍵的註冊
1.在窗啟動時建立atom aatom atom 定義在private中 1 if findatom zwxhotkey 0 then 2begin 3 aatom globaladdatom zwxhotkey 4end 5 if registerhotkey handle,aatom,mod a...
C 註冊全域性熱鍵的方法
在form裡加入以下 即可 protected override void wndproc ref message m base.wndproc ref m public void sethotkey keys c,bool bctrl,bool bshift,bool balt,bool bwin...
delphi程式熱鍵
要定義乙個全域性熱鍵,通常有三個步驟 1 定義windows的訊息wm hotkey的hook鏈,即 procedure myshortcut var message tmessage message wm hotkey 2 向windows加入乙個全域性原子hotkey globaladdatom...