RegisterHotKey

RegisterHotKey

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

基本介紹

  • 中文名: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。

相關詞條

熱門詞條

聯絡我們