C 註冊熱鍵 RegisterHotKey

2021-07-11 07:13:37 字數 2387 閱讀 6372

【vc++】註冊熱鍵—registerhotkey

需要同時按住 ctrl + 方向鍵,則使用 《註冊熱鍵》的方法。

1、定義熱鍵,不要重複,防止熱鍵衝突 

#define myhotkey1 1018

#define myhotkey2 1019

2、註冊熱鍵

registerhotkey(m_hwnd,myhotkey1,mod_control, vk_f1);

registerhotkey(m_hwnd,myhotkey2,mod_control, vk_f2); 

3、手動新增

lresult defwindowproc(uint message, wparam wparam, lparam lparam);

//手動新增虛函式defwindowproc

lresult cregisterhotkeydlg::defwindowproc(uint message, wparam wparam, lparam lparam)

if(wparam==myhotkey2)

updatedata(true);

m_2++;

updatedata(false);}}

return cdialog::defwindowproc(message,wparam,lparam);

} 4、熱鍵的登出

在程式退出之前要記著登出這些註冊熱鍵,登出熱鍵的函式如下:

bool unregisterhotkey( hwnd hwnd, // handle to window int id // hot key identifier );

則登出上面註冊的熱鍵ctrl+shift+a的**為:

unregisterhotkey(m_hwnd,myhotkey1);//解除安裝熱鍵

unregisterhotkey(m_hwnd,myhotkey2);//解除安裝熱鍵

附錄:鍵盤常用ascii碼

esc鍵 vk_escape (27)

回車鍵: vk_return (13)

tab鍵: vk_tab (9)

caps lock鍵: vk_capital (20)

shift鍵: vk_shift (16)

ctrl鍵: vk_control (17)

alt鍵: vk_menu (18)

空格鍵: vk_space (32)

退格鍵: vk_back (8)

左徽標鍵: vk_lwin (91)

右徽標鍵: vk_lwin (92)

insert鍵: vk_insert (45)

home鍵: vk_home (36)

page up: vk_prior (33)

pagedown: vk_next (34)

end鍵: vk_end (35)

delete鍵: vk_delete (46)

方向鍵(←): vk_left (37)

方向鍵(↑): vk_up (38)

方向鍵(→): vk_right (39)

方向鍵(↓): vk_down (40)

f1鍵: vk_f1 (112)

f2鍵: vk_f2 (113)

f3鍵: vk_f3 (114)

f4鍵: vk_f4 (115)

f5鍵: vk_f5 (116)

f6鍵: vk_f6 (117)

f7鍵: vk_f7 (118)

f8鍵: vk_f8 (119)

f9鍵: vk_f9 (120)

f10鍵: vk_f10 (121)

f11鍵: vk_f11 (122)

f12鍵: vk_f12 (123)

num lock鍵: vk_numlock (144)

小鍵盤0: vk_numpad0 (48)

小鍵盤1: vk_numpad0 (49)

小鍵盤2: vk_numpad0 (50)

小鍵盤3: vk_numpad0 (51)

小鍵盤4: vk_numpad0 (52)

小鍵盤5: vk_numpad0 (53)

小鍵盤6: vk_numpad0 (54)

小鍵盤7: vk_numpad0 (55)

小鍵盤8: vk_numpad0 (56)

小鍵盤9: vk_numpad0 (57)

小鍵盤.: vk_decimal (46)

小鍵盤*: vk_multiply (42)

小鍵盤+: vk_multiply (43)

小鍵盤-: vk_subtract (45)

小鍵盤/: vk_divide (47)

pause break鍵: vk_pause (19)

scroll lock鍵: vk_scroll (145) 

C 註冊系統熱鍵

簡單點說就是為程式制定快捷鍵勒。很多軟體都帶熱鍵功能的,通過以下方式可以實現2個鍵或3個鍵的快捷鍵,相當之實用,具體實現方法看後文吧。先引用using system.runtime.interopservices 的命名空間,然後在合適的位置加上如下 就ok。注意 form1 load和form1 ...

C 註冊系統熱鍵

引用using system.runtime.interopservices 命名空間 dllimport user32 public static extern bool registerhotkey intptr hwnd,int id,uint control,keys vk 註冊熱鍵的api...

c 註冊熱鍵功能

using system.runtime.interopservices 註冊熱鍵的api dllimport user32 public static extern bool registerhotkey intptr hwnd,int id,uint control,keys vk 解除註冊熱鍵...