在C++中,可以使用RegisterHotKey
函数来注册一个热键。
#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");
}
// 消息循环
MSG msg = { 0 };
while (GetMessage(&msg, NULL, 0, 0) != 0)
{
if (msg.message == WM_HOTKEY)
{
// 热键被按下
printf("Hotkey pressed!\n");
}
}
// 注销热键
UnregisterHotKey(NULL, 1);
return 0;
}
上述代码注册了一个热键Ctrl + Shift + A
,当用户按下这个热键时,会收到一个WM_HOTKEY
消息。在消息循环中,可以处理这个消息并执行相应的操作。需要注意的是,热键的ID必须是唯一的,这里使用了1作为热键的ID。
RegisterHotKey
函数的第一个参数是窗口句柄,如果传入NULL
,表示使用当前活动窗口。第二个参数是热键的ID,用于区分不同的热键。第三个参数是组合键的标志,可以使用MOD_ALT
、MOD_CONTROL
、MOD_SHIFT
和MOD_WIN
进行组合。第四个参数是热键的虚拟键码。
UnregisterHotKey
函数用于注销热键,需要传入相同的窗口句柄和热键的ID。