AutoHotkey调用GetKeyState未达预期,无法触发点击uBlock Origin的Create按钮
问题原因
- 逻辑时序错误:你现有脚本是执行完「点击uBlock插件、移动坐标点击」的操作后立刻检查一次左键状态,此时你还没有手动执行选中元素的左键点击,自然检测不到触发条件,整个脚本跑完就结束了,不会等待后续你的左键操作。
GetKeyState参数误用:"T"参数用于检测按键的切换状态(仅对CapsLock、NumLock这类有开关属性的按键有效),左键是瞬时触发的按键,这个参数完全不适用。- 缺少事件监听逻辑:脚本没有绑定左键点击的触发规则,无法在你后续手动点击元素时自动执行后续逻辑。
修复方案
你需要拆分两个流程:第一步触发uBlock进入ZAP模式,第二步监听后续的左键点击事件,触发后自动点击Create按钮,示例代码如下:
; 可以自定义快捷键触发uBlock ZAP模式,这里用F1举例,你可以改成你需要的触发方式 F1:: IfWinActive, ahk_class Chrome_WidgetWin_1 ;;Chrome Window { ; 搜索uBlock插件图标点击 PixelSearch, Px, Py, 1161, 34, 1312, 81, 0x000080, 5, Fast if ErrorLevel MsgBox, 检查像素搜索区域或颜色值 else{ MouseMove,%Px%,%Py% Click Sleep 200 ; 标记已进入ZAP模式,用于后续监听 global zappingMode := true return } } return ; 监听左键点击事件,仅在ZAP模式下生效 ~LButton:: if (zappingMode = true) { ; 重置模式标记,避免重复触发 zappingMode := false Sleep 800 ; 等待弹窗加载 ; 搜索Create按钮像素 PixelSearch, Pxd, Pyd, 917, 430, 1346, 731, 0x67D5FF, 5, Fast if ErrorLevel MsgBox, 检查Create按钮像素搜索区域或颜色值 else{ MouseMove,%Pxd%,%Pyd% Click } } return
- 代码说明:
- 用自定义快捷键触发进入ZAP模式,设置全局标记位
- 加了
~LButton热键监听左键点击,前缀~表示不会屏蔽你原本的左键点击选中元素的功能 - 只有在ZAP模式标记为开启时,才会执行后续的弹窗搜索和点击Create按钮的逻辑,避免日常使用误触发
内容的提问来源于stack exchange,提问作者LumetriFlow
相关产品推荐
相关产品推荐

