如何在Qt中设置GLOBAL热键?

时间:2017-05-04 08:33:40

标签: c++ windows qt global msg

if (RegisterHotKey(NULL, 1, MOD_ALT | 0x4000, 0x42))  //0x42 is 'b'
{
    qDebug() << "Hotkey 'ALT+b' registered, using MOD_NOREPEAT flag";
}

MSG msg = {0};

while (GetMessage(&msg, NULL, 0, 0) != 0)
{
    if (msg.message == WM_HOTKEY)
    {
        qDebug() << "WM_HOTKEY received";
    }
}

这样可行,但是这个while循环会冻结我的应用程序。我无法移动它等等。我尝试使用QTimer并将时间设置为100并添加到最后一个休息时间,它可以工作,但应用程序有一些滞后。还有另外一种方法吗?

0 个答案:

没有答案