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

AutoIt脚本报错PixelGetColor参数数量错误,求原因及解决

为什么你的AutoIt脚本会报PixelGetColor参数错误?

错误原因

PixelGetColor函数要求传入两个独立的数值参数:屏幕横坐标(x)和纵坐标(y),但你直接把输入框获取的单个字符串变量传给了它,相当于只传了1个参数,不符合函数的参数要求,所以触发了"wrong number of args"错误。

输入框返回的$position是一个字符串(比如用户输入的"100,200"),AutoIt不会自动将这个字符串拆分成x和y两个数值,必须手动处理后再传给函数。

修正后的脚本

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>

$position = InputBox("", "position:", "", "", 200, 150,  @DesktopWidth / 2-125, @DesktopHeight / 2-100, 0)
; 处理用户取消输入的情况
If @error Then Exit

; 按逗号分割坐标字符串
$coords = StringSplit($position, ",", $STR_NOCOUNT)
; 检查是否输入了正确格式的坐标
If UBound($coords) <> 2 Then
    MsgBox($MB_SYSTEMMODAL, "", "请输入正确的坐标格式,例如:100,200")
    Exit
EndIf

; 将分割后的字符串转为数值
$x = Number($coords[0])
$y = Number($coords[1])
; 检查坐标是否在屏幕范围内
If $x < 0 Or $y < 0 Or $x >= @DesktopWidth Or $y >= @DesktopHeight Then
    MsgBox($MB_SYSTEMMODAL, "", "坐标超出屏幕范围,请重新输入")
    Exit
EndIf

; 传入正确的两个参数调用PixelGetColor
$color = PixelGetColor($x, $y)
MsgBox($MB_SYSTEMMODAL,"","Hex Color: " & Hex($color, 6))

关键说明

  • 必须将输入的坐标字符串拆分为$x和$y两个数值变量,再分别传给PixelGetColor。
  • 增加输入合法性检查,能避免用户输入无效内容(比如非数字、格式错误、超出屏幕范围的坐标)导致脚本崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:10:41