在C++中,可以使用RegisterHotKey
函數(shù)來注冊一個(gè)熱鍵。
#include <Windows.h>
int main()
{
// 注冊熱鍵
if (RegisterHotKey(NULL, 1, MOD_CONTROL | MOD_SHIFT, 'A'))
{
// 注冊成功
printf("Hotkey registered!\n");
}
else
{
// 注冊失敗
printf("Failed to register hotkey!\n");
}
// 消息循環(huán)
MSG msg = { 0 };
while (GetMessage(&msg, NULL, 0, 0) != 0)
{
if (msg.message == WM_HOTKEY)
{
// 熱鍵被按下
printf("Hotkey pressed!\n");
}
}
// 注銷熱鍵
UnregisterHotKey(NULL, 1);
return 0;
}
上述代碼注冊了一個(gè)熱鍵Ctrl + Shift + A
,當(dāng)用戶按下這個(gè)熱鍵時(shí),會收到一個(gè)WM_HOTKEY
消息。在消息循環(huán)中,可以處理這個(gè)消息并執(zhí)行相應(yīng)的操作。需要注意的是,熱鍵的ID必須是唯一的,這里使用了1作為熱鍵的ID。
RegisterHotKey
函數(shù)的第一個(gè)參數(shù)是窗口句柄,如果傳入NULL
,表示使用當(dāng)前活動窗口。第二個(gè)參數(shù)是熱鍵的ID,用于區(qū)分不同的熱鍵。第三個(gè)參數(shù)是組合鍵的標(biāo)志,可以使用MOD_ALT
、MOD_CONTROL
、MOD_SHIFT
和MOD_WIN
進(jìn)行組合。第四個(gè)參數(shù)是熱鍵的虛擬鍵碼。
UnregisterHotKey
函數(shù)用于注銷熱鍵,需要傳入相同的窗口句柄和熱鍵的ID。