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

如何在AHK脚本中添加像素颜色判断实现点击标记功能?

解决AHK脚本像素判断与点击问题

你的原代码无法运行是因为AHK不支持pixel is not white这种语法,需要用标准的PixelGetColor命令获取像素颜色后再做判断,同时还要注意页面加载的延迟问题。以下是修正后的完整脚本及说明:

修正后的脚本(相对位置版)

!o::
    ; 打开谷歌日历新窗口
    Run, chrome.exe "https://calendar.google.com/calendar/u/0/r/day/2023/7/10" --new-window
    ; 等待页面加载完成,根据网络情况调整延迟时间(单位:毫秒)
    Sleep, 5000
    ; 移动鼠标到标记的相对位置
    MouseMove, -300, 300, 10, R
    ; 获取当前鼠标位置的像素颜色
    PixelGetColor, pixelColor, %A_CursorX%, %A_CursorY%
    ; 对比颜色(白色的AHK格式为0xFFFFFF,若你的标记勾选色不同需替换)
    if (pixelColor != 0xFFFFFF) {
        ; 点击当前位置
        Click
    }
return

关键修正点

  • 添加页面加载延迟:Chrome打开网页需要时间,必须用Sleep等待页面完全加载,否则目标位置的像素还未加载出来,操作会失效。
  • 正确获取像素颜色:使用PixelGetColor命令获取指定坐标的颜色,保存到变量后再判断。
  • 语法修正:AHK的条件判断需用if (变量 != 目标值)的格式,不能用自然语言式的pixel is not white。
  • 颜色值确认:如果不确定标记勾选时的颜色,可右键AHK托盘图标打开Window Spy,将鼠标移到标记上查看Pixel Color的值,替换脚本中的0xFFFFFF。

更稳定的绝对坐标版

如果标记在页面上的位置是固定的,建议直接使用绝对坐标,避免相对移动受当前鼠标位置影响:

!o::
    Run, chrome.exe "https://calendar.google.com/calendar/u/0/r/day/2023/7/10" --new-window
    Sleep, 5000
    ; 替换为标记的绝对坐标
    targetX := 800
    targetY := 400
    PixelGetColor, pixelColor, %targetX%, %targetY%
    if (pixelColor != 0xFFFFFF) {
        Click, %targetX%, %targetY%
    }
return

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:30:11