You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让AutoHotKey脚本仅在Chrome中双击单词时执行查找操作

解决Chrome中双击触发查找的脚本范围问题

这个问题其实是因为你把上下文敏感的条件指令放错位置啦!AutoHotkey里的#IfWinActive是用来限定后续热键的生效范围,而不是在热键内部做判断。咱们来调整一下脚本结构就能解决问题:

修正后的完整脚本

; 设置窗口标题匹配模式为"任意位置匹配"
SetTitleMatchMode, 2

; 仅当Chrome窗口激活时,后续的热键才生效
#IfWinActive, ahk_class Chrome
~LButton::
    ; 判断是否是双击(两次按键间隔小于400ms,且不是第一次按下)
    If (A_TimeSincePriorHotkey < 400) and (A_TimeSincePriorHotkey <> -1) {
        SendInput ^c  ; 复制选中的单词
        Sleep, 10     ; 短暂等待确保复制完成
        SendInput ^f  ; 打开查找框
        Sleep, 10     ; 短暂等待确保查找框加载
        SendInput ^v  ; 粘贴复制的内容到查找框
    }
Return
; 结束上下文敏感范围,避免影响后续其他脚本
#IfWinActive

关键调整说明

  • #IfWinActive的位置:把它放在热键~LButton::之前,这样整个热键只会在Chrome窗口激活时被触发,非Chrome窗口双击左键完全不会触发这个脚本逻辑。
  • 保留原左键功能:~LButton里的~符号很重要,它表示保留左键原本的点击/选中功能,不会因为热键覆盖而导致左键无法正常使用。
  • 结束上下文范围:最后加上#IfWinActive(不带参数),可以关闭之前的上下文敏感设置,防止影响脚本中其他可能存在的热键。

原来的脚本之所以在非Chrome窗口也会运行,是因为#IfWinActive放在了热键定义之后,此时热键已经被注册为全局生效的了,内部的判断其实起不到限定范围的作用——热键本身已经触发了,只是在内部做了窗口判断,但还是会占用系统资源,体验也不好。调整位置后就从根源上限定了热键的生效场景。

内容的提问来源于stack exchange,提问作者Royi Namir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:07:44