Autohotkey 是否可以通过控制单击和像素搜索在自动热键中工作?

Autohotkey 是否可以通过控制单击和像素搜索在自动热键中工作?,autohotkey,Autohotkey,我很难控制点击,我试图在不移动鼠标的情况下模拟控制点击,但我总是在运行时出错,因为我的代码中有错误 PixelSearch, X, Y, 0, 0, 1292, 747, 0x00FF00, 0, fast if(ErrorLevel=0) sleep, 100 ControlClick, %X% %Y%, form1, Left, 1 你错过了一些东西 首先,只执行它们下面的行。如果你有超过一行的代码,你必须把它放在大括号里。它叫 第二,你的

我很难控制点击,我试图在不移动鼠标的情况下模拟控制点击,但我总是在运行时出错,因为我的代码中有错误

PixelSearch, X, Y, 0, 0, 1292, 747, 0x00FF00, 0, fast
        if(ErrorLevel=0) 
        sleep, 100
        ControlClick, %X% %Y%, form1, Left, 1

你错过了一些东西

首先,只执行它们下面的行。如果你有超过一行的代码,你必须把它放在大括号里。它叫

第二,你的语法是错误的。如果要传递坐标,则必须将x和y放在坐标前面,以便controlclick知道它们是坐标

不正确:
ControlClick,%X%%Y%

正确:
ControlClick,x%x%x%Y%

第三,如果你看你的代码,你有
WinText应该在哪里。
语法:
ControlClick[,Control或Position,WinTitle,WinText,WhichButton,ClickCount,Options,excludetTitle,ExcludeText]

你不能假设AHK知道左<代码>是按钮。您必须告诉它跳过该字段,方法是在该字段中添加逗号以指示该字段为空。这样它就知道跳过wintext并将Left视为
WhichButton
字段

不正确:
ControlClick,%X%%Y%,form1,Left

正确:
ControlClick,%X%%Y%,form1,,Left

把它们放在一起,你就有了:

PixelSearch, X, Y, 0, 0, 1292, 747, 0x00FF00, 0, fast
    if (ErrorLevel = 0){
        Sleep, 100
        ControlClick, x%X% y%Y%, form1, , Left, 1
    }
如果这能解决你的问题,请告诉我

编辑:显然这并没有解决你的问题。我打赌你的控制点击和你传递的信息就是问题所在

确保在脚本开头定义。您需要将其设置为全屏或相对

其次,除非有充分的理由,否则不要使用窗口标题。使用类似于
ahk_exe chrome.exe
,而不是form1。它更可靠

#SingleInstance, Force
CoordMode, Pixel, Screen
return

F1::
    PixelSearch, X, Y, 0, 0, 1292, 747, 0x00FF00, 0, fast
    if (ErrorLevel = 0){
        Sleep, 100
        ControlClick, x%X% y%Y%, ahk_exe yourExeName.exe, , Left, 1
    }
return

你用它做什么程序/站点/游戏?

有几件事你错过了

首先,只执行它们下面的行。如果你有超过一行的代码,你必须把它放在大括号里。它叫

第二,你的语法是错误的。如果要传递坐标,则必须将x和y放在坐标前面,以便controlclick知道它们是坐标

不正确:
ControlClick,%X%%Y%

正确:
ControlClick,x%x%x%Y%

第三,如果你看你的代码,你有
WinText应该在哪里。
语法:
ControlClick[,Control或Position,WinTitle,WinText,WhichButton,ClickCount,Options,excludetTitle,ExcludeText]

你不能假设AHK知道左<代码>是按钮。您必须告诉它跳过该字段,方法是在该字段中添加逗号以指示该字段为空。这样它就知道跳过wintext并将Left视为
WhichButton
字段

不正确:
ControlClick,%X%%Y%,form1,Left

正确:
ControlClick,%X%%Y%,form1,,Left

把它们放在一起,你就有了:

PixelSearch, X, Y, 0, 0, 1292, 747, 0x00FF00, 0, fast
    if (ErrorLevel = 0){
        Sleep, 100
        ControlClick, x%X% y%Y%, form1, , Left, 1
    }
如果这能解决你的问题,请告诉我

编辑:显然这并没有解决你的问题。我打赌你的控制点击和你传递的信息就是问题所在

确保在脚本开头定义。您需要将其设置为全屏或相对

其次,除非有充分的理由,否则不要使用窗口标题。使用类似于
ahk_exe chrome.exe
,而不是form1。它更可靠

#SingleInstance, Force
CoordMode, Pixel, Screen
return

F1::
    PixelSearch, X, Y, 0, 0, 1292, 747, 0x00FF00, 0, fast
    if (ErrorLevel = 0){
        Sleep, 100
        ControlClick, x%X% y%Y%, ahk_exe yourExeName.exe, , Left, 1
    }
return

你用它做什么程序/站点/游戏?

谢谢,但是它不会在像素x y搜索所在的坐标中单击。。只需单击我当前的鼠标位置:(您实际测试过代码吗?ControlClick的问题是它只适用于Coordmode窗口。即使设置Coordmode、Pixel、Window,pixelsearch函数也无法获得与ControlClick使用的坐标匹配的正确坐标。尝试一下,单击将不会在正确的位置。使用“单击”或者鼠标单击可以工作,但如果您不希望鼠标移动并带走焦点,则需要ControlClick。您可以使用WinActivate还原上一个窗口,但当您必须每5~10秒单击一次时,这会变得很烦人。谢谢,但是它不会在pixelsearch的x y坐标中单击。只需单击即可我当前的鼠标位置:(您实际测试过代码吗?ControlClick的问题是它只适用于Coordmode窗口。即使设置Coordmode、Pixel、Window,pixelsearch函数也无法获得与ControlClick使用的坐标匹配的正确坐标。尝试一下,单击将不会在正确的位置。使用“单击”或者鼠标单击可以工作,但如果您不希望鼠标移动并带走焦点,则需要ControlClick。您可以使用WinActivate还原上一个窗口,但当您必须每5~10秒单击一次时,这会变得很烦人。