![如何将 L-click 绑定到按键绑定,但仅限于不打字时(在 AHK 中)?](https://linux22.com/image/1685817/%E5%A6%82%E4%BD%95%E5%B0%86%20L-click%20%E7%BB%91%E5%AE%9A%E5%88%B0%E6%8C%89%E9%94%AE%E7%BB%91%E5%AE%9A%EF%BC%8C%E4%BD%86%E4%BB%85%E9%99%90%E4%BA%8E%E4%B8%8D%E6%89%93%E5%AD%97%E6%97%B6%EF%BC%88%E5%9C%A8%20AHK%20%E4%B8%AD%EF%BC%89%EF%BC%9F.png)
我完全是 AHK 新手。我最近才发现通过将 L-click 绑定到键盘键来点击的乐趣。我将其绑定到我的字母“D”键,但是我遇到了一个本应很明显的问题,现在根本无法输入字母“D”。我使用的脚本只是:
D::L按钮
每当我尝试输入“D”时,它只会点击鼠标所在的位置。
有没有办法将 L 单击绑定到我的 D 键,但是不是在输入字段中按“D”时触发(例如 URL 栏,或双击 Google 表格中的单元格时,或按 Enter 在视频游戏中输入时等)?我基本上希望能够在输入字段获得焦点时输入“D”,同时能够在输入字段未获得焦点时使用“D”左键单击(即触发脚本)。
如果有人能提供一些建议,我将不胜感激。谢谢
答案1
答案2
AutoHotKey 无法检测程序中的活动重点元素,因为这对于所有应用程序来说非常困难,甚至不可能。此外,它完全超出了 AHK 项目的范围。
您有两个选择;您可以检测活动窗口,然后可能只有您的热键,或者通常这就是为什么热键要求您按住前缀键(例如 ctrl、左 alt 或右 alt)的原因,因为这些键与现有的键使用方式不冲突。
您可以使用以下方法获取活动窗口的标题https://www.autohotkey.com/docs/v1/lib/WinGetActiveTitle.htm
答案3
我认为这不可能。无论你是否处于“打字模式”,键盘都在寻找输入。
似乎有一些方法可以检测某个键是否被快速连续按下: https://www.autohotkey.com/board/topic/103198-fast-way-to-detect-double-key-presses/ 您可以更改脚本来查看是否D快速按两次。
或者您可以更改为D使用一个或多个修饰键,如ctrl、alt、Win或shift。