Delphi 全域性熱鍵註冊 使用

2021-10-16 11:47:40 字數 1801 閱讀 7865

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...