我想在我的C++/Qt應用程序的Windows上實現全局熱鍵。我使用了RegisterHotKey,令人驚訝的工作,我可以看到,按組合觸發我的事件,但因爲我不知道任何其他方式,我只是用一個循環,現在阻止我的窗戶,並阻止它顯示出來。C++ Win32監聽全局keybind
你可以在下面找到我的代碼。我如何傾聽這種組合?肯定有另一種方式。
void set_win32_keys(MainWindow *mwin) {
HWND main_hwnd = (HWND)mwin->winId();
RegisterHotKey(main_hwnd, 2, MOD_CONTROL | MOD_SHIFT, 0x32 /*2 key*/);
MSG *msg;
msg = new MSG();
BOOL b_ret;
while ((b_ret = GetMessage(msg, main_hwnd, 0, 0)) != 0) {
if (b_ret == -1) {
qDebug() << "Error";
} else {
if (msg->message == WM_HOTKEY) {
mwin->new_screenshot();
qDebug() << msg;
}
}
}
}
@kfsone對不起,我編輯了我的問題 – calmandniceperson