基本介紹
- 中文名:RegisterHotKey
- Windows NT:3.1
- Windows:95
- Windows CE:不支持
簡介,函式原型,詳細參數,返回值,注意事項,支持系統版本,
簡介
函式功能:該函式定義一個系統範圍的熱鍵。函式原型:BOOL RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);
函式原型
BOOL WINAPI RegisterHotKey( __in_opt HWND hWnd, __in int id, __in UINT fsModifiers, __in UINT vk ); |
詳細參數
hWnd:
接收熱鍵產生WM_HOTKEY訊息的視窗句柄。若該參數NULL,傳遞給調用執行緒的WM_HOTKEY訊息必須在訊息循環中進行處理。
id:
定義熱鍵的標識符。調用執行緒中的其他熱鍵,不能使用同樣的標識符。應用程式必須定義一個0X0000-0xBFFF範圍的值。一個共享的動態程式庫(DLL)必須定義一個範圍為0xC000-0xFFFF的值(GlobalAddAtom函式返回該範圍)。為了避免與其他動態程式庫定義的熱鍵衝突,一個DLL必須使用GlobalAddAtom函式獲得熱鍵的標識符。
fsModifoers:
定義為了產生WM_HOTKEY訊息而必須與由nVirtKey參數定義的鍵一起按下的鍵。
該參數可以是如下值的組合:
鍵 | 值 | 含意 |
MOD_ALT | 0x0001 | 按下的可以是任一Alt鍵。 |
MOD_SHIFT | 0x0004 | 按下的可以是任一Shift鍵。 |
MOD_WIN | 0x0008 | 按下的可以是任一Windows徽標鍵。 |
MOD_NOREPEAT | 0x4000 | 更改熱鍵行為,以便鍵盤自動重複不會產生多個熱鍵通知。 |
MOD_CONTROL | 0x0002 | 按下的可以是任一Ctrl鍵。 |
vk:
定義熱鍵的虛擬鍵碼。
返回值
若函式調用成功,返回一個非0值。若函式調用失敗,則返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函式。
注意事項
當某鍵被接下時,系統在所有的熱鍵中尋找匹配者。一旦找到一個匹配的熱鍵,系統將把WM_HOTKEY訊息傳遞給登記了該熱鍵的執行緒的訊息佇列。該訊息被傳送到佇列頭部,因此它將在下一輪訊息循環中被移去。該函式不能將熱鍵同其他執行緒創建的視窗關聯起來。
若為一熱鍵定義的擊鍵己被其他熱鍵所定義,則RegisterHotKey函式調用失敗。
若hWnd參數標識的視窗已用與id參數定義的相同的標識符登記了一個熱鍵,則參數fsModifiers和vk的新值將替代這些參數先前定義的值。
Windows CE:Windows CE 2.0以上版本對於參數fsModifiers支持一個附加的標誌位。叫做MOD_KEYUP。
若設定MOD_KEYUP位,則當發生鍵被按下或被彈起的事件時,視窗將傳送WM_HOTKEY訊息。
RegisterHotKey可以被用來線上程之間登記熱鍵。
支持系統版本
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:支持;頭檔案:winuser.h;庫檔案:Hotkey.lib。