Majestio Asked:2024-02-16 13:38:22 +0000 UTC2024-02-16 13:38:22 +0000 UTC 2024-02-16 13:38:22 +0000 UTC 全局热键注册 772 在程序中您需要注册全局热键Win Z + Z。您需要帮助: 检查该热键是否忙 如何将处理程序附加到它 无需建议。需要 fasm 的代码示例。对于M$ Windows的问题,但是如果有X11的解决方案,特别是xfce4的解决方案,我将更加感激! windows 1 个回答 Voted Best Answer PRODIGY 2024-02-20T15:41:59Z2024-02-20T15:41:59Z 热键由函数分配RegisterHotKey(),描述如下: https: //learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerhotkey 下面是 Win+Z 组合的示例: format pe console include 'win32ax.inc' entry start ;------------------- .data HOTKEY_ID = 1 ; ID комбинации MOD_WIN = 8 ; mesg MSG ; назначаем алиас структуре MSG ;------------------- .code start: invoke RegisterHotKey, 0, HOTKEY_ID, MOD_WIN, 0x5A ; 5Ah = Z @wait: invoke GetMessage,mesg,0,0,0 ; цикл обработки сообщений cmp [mesg.message],WM_HOTKEY ; это хоткей? jne @wait ; нет: ждать.. cinvoke printf,<10,' Hotkey pressed!',0> ; иначе: делаем что нужно invoke UnregisterHotKey,0,HOTKEY_ID ; удаляем назначенный хоткей cinvoke getch ; ждать любую клавишу cinvoke exit,0 ; на выход ;------------------- section '.idata' import data readable library msvcrt, 'msvcrt.dll', user32, 'user32.dll' import msvcrt, printf,'printf', exit,'exit', getch,'_getch' include 'api\user32.inc'
热键由函数分配
RegisterHotKey()
,描述如下: https: //learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerhotkey 下面是 Win+Z 组合的示例: