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

AutoHotkey实现:按键触发鼠标位置设置PixelSearch区域并搜索颜色移动鼠标

AutoHotkey 基于鼠标位置生成PixelSearch搜索区域的修正方案

需求说明:按下1键时,以当前鼠标所在坐标作为搜索矩形的左上角(X1,Y1),右下角(X2,Y2)为鼠标坐标分别加100的位置,在该矩形区域内查找颜色0xFAFF00;找到目标颜色后将鼠标移动到对应位置,未找到则弹出错误提示。

原代码存在的核心问题:使用=进行变量赋值时,AHK会将右侧内容当作字符串处理,而非数值计算。比如X1 = mX实际是把字符串"mX"赋值给X1,而非mX变量存储的鼠标坐标数值,这会导致PixelSearch无法识别正确的搜索区域。

修正后的代码:

#SingleInstance, Force
SendMode, Input
SetBatchLines, -1
SetWorkingDir, %A_ScriptDir%

1::
    MouseGetPos, mX, mY
    ; 使用 := 进行数值赋值,确保获取到实际坐标并计算
    X1 := mX
    Y1 := mY
    X2 := mX + 100
    Y2 := mY + 100
    
    ; 执行像素搜索,参数依次为:找到的X/Y变量、搜索范围、目标颜色、颜色偏差、搜索模式
    PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, 0xFAFF00, 1, Fast

    if (ErrorLevel = 0) {
        MouseMove, OutputVarX, OutputVarY, 1  ; 1表示移动速度,数值越大越慢
    }
    else {
        MsgBox, 未找到目标颜色
        Sleep, 500
    }
return

2::Reload  ; 按下2键重新加载脚本
3::ExitApp ; 按下3键退出脚本

关键修改说明:

  • 替换变量赋值运算符:将=改为:=,这是AHK中用于数值/表达式赋值的运算符,能正确读取mX、mY的数值并完成X2、Y2的增量计算。
  • 优化提示文本:将原MsgBox的"error"改为更清晰的"未找到目标颜色",便于理解执行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:25:08