複製鏈接
請複製以下鏈接發送給好友

RegisterHotKey

鎖定
RegisterHotKey是一個函數,功能是定義一個系統範圍的熱鍵。函數原型有BOOL RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk)。該函數定義一個系統範圍的熱鍵。
中文名
RegisterHotKey
Windows NT
3.1
Windows
95
Windows CE
不支持

RegisterHotKey簡介

函數功能:該函數定義一個系統範圍的熱鍵。函數原型:BOOL RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);

RegisterHotKey函數原型

BOOL WINAPI RegisterHotKey(
__in_opt HWND hWnd,
__in int id,
__in UINT fsModifiers,
__in UINT vk
);

RegisterHotKey詳細參數

hWnd:
接收熱鍵產生WM_HOTKEY消息的窗口句柄。若該參數NULL,傳遞給調用線程的WM_HOTKEY消息必須在消息循環中進行處理。
id:
定義熱鍵的標識符。調用線程中的其他熱鍵,不能使用同樣的標識符。應用程序必須定義一個0X0000-0xBFFF範圍的值。一個共享的動態鏈接庫(DLL)必須定義一個範圍為0xC000-0xFFFF的值(GlobalAddAtomA函數返回該範圍)。為了避免與其他動態鏈接庫定義的熱鍵衝突,一個DLL必須使用GlobalAddAtomA函數獲得熱鍵的標識符。
fsModifoers:
定義為了產生WM_HOTKEY消息而必須與由nVirtKey參數定義的鍵一起按下的鍵。
該參數可以是如下值的組合:
含意
MOD_ALT
0x0001
按下的可以是任一Alt鍵。
MOD_SHIFT
0x0004
按下的可以是任一Shift鍵。
MOD_WIN
0x0008
按下的可以是任一Windows徽標鍵。
MOD_NOREPEAT
0x4000
更改熱鍵行為,以便鍵盤自動重複不會產生多個熱鍵通知。
MOD_CONTROL
0x0002
按下的可以是任一Ctrl鍵。
vk:
定義熱鍵的虛擬鍵碼。

RegisterHotKey返回值

若函數調用成功,返回一個非0值。若函數調用失敗,則返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函數。

RegisterHotKey注意事項

當某鍵被接下時,系統在所有的熱鍵中尋找匹配者。一旦找到一個匹配的熱鍵,系統將把WM_HOTKEY消息傳遞給登記了該熱鍵的線程的消息隊列。該消息被傳送到隊列頭部,因此它將在下一輪消息循環中被移去。該函數不能將熱鍵同其他線程創建的窗口關聯起來。
若為一熱鍵定義的擊鍵己被其他熱鍵所定義,則RegisterHotKey函數調用失敗。
若hWnd參數標識的窗口已用與id參數定義的相同的標識符登記了一個熱鍵,則參數fsModifiers和vk的新值將替代這些參數先前定義的值。
Windows CE:Windows CE 2.0以上版本對於參數fsModifiers支持一個附加的標誌位。叫做MOD_KEYUP。
若設置MOD_KEYUP位,則當發生鍵被按下或被彈起的事件時,窗口將發送WM_HOTKEY消息。
RegisterHotKey可以被用來在線程之間登記熱鍵。

RegisterHotKey支持系統版本

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:支持;頭文件:winuser.h;庫文件:Hotkey.lib。