【发布时间】:2019-06-07 19:48:05
【问题描述】:
我正在阅读 Autohotkey 的文档,然后我无法理解短语“键盘挂钩”或“鼠标挂钩”的含义。
这是正文:
"$ 前缀对鼠标热键没有影响,因为它们总是使用鼠标钩子。它对已经需要键盘钩子的热键也没有影响"
【问题讨论】:
标签: keyboard window keyboard-shortcuts touchpad
我正在阅读 Autohotkey 的文档,然后我无法理解短语“键盘挂钩”或“鼠标挂钩”的含义。
这是正文:
"$ 前缀对鼠标热键没有影响,因为它们总是使用鼠标钩子。它对已经需要键盘钩子的热键也没有影响"
【问题讨论】:
标签: keyboard window keyboard-shortcuts touchpad
1 - Keyboard Hook 或 Mouse Hook 表示:您可以监控/接收所有键盘按键值或监控所有鼠标按键按下值
注意:您需要使用命令代码#InstallKeybdHook 来启用监视器
对于鼠标钩,您需要使用命令代码#InstallMouseHook
试试这个 AHK 代码:
例子.ahk
#SingleInstance force
#InstallKeybdHook
$^c::
send ^c
send {f5}
return
esc::exitapp
2 - 并且 $ 前缀意味着您可以使用热键 ($^c::) 插入相同的热键代码(发送 ^c)。
如何监控所有键盘按键值:
1 - 转到系统托盘。(自动热键图标)
2 - 然后单击鼠标右键。
3 - 然后打开。
4 - 然后单击鼠标左键。
5 - 然后点击 Ctrl+c
6 - 现在您将看到 键盘挂钩 你点击了。
注意:要监控所有键盘按键值,您需要手动按 (F5) 键(刷新)
【讨论】:
RegisterHotKey 函数 (winuser.h)
from microsoft
BOOL RegisterHotKey(
[in, optional] HWND hWnd,
[in] int id,
[in] UINT fsModifiers,
[in] UINT vk
);
keyboard hook它监控击键,用于激活:
here says:
最近注册的钩子首先被调用。
最近最近启动的脚本不一定优先,因为挂钩热键总是优先于注册的热键。
AutoHotkey 在以下情况下使用钩子:
https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks
为了利用特定类型的钩子,开发人员提供了一个钩子过程并使用 SetWindowsHookEx 函数将其安装到与钩子关联的链中
C#的类似问题:RegisterHotKeys and global keyboard hooks?
【讨论】: