Autohotkey 为什么脚本停止工作了?它应该可以工作

Autohotkey 为什么脚本停止工作了?它应该可以工作,autohotkey,Autohotkey,代码 WheelUp:: MouseGetPos,MouseX,MouseY PixelGetColor,颜色,%MouseX%,%MouseY% 如果颜色=0x282828 { 发送,{sc149} } 如果颜色为0x282828,则为Else { 点击,启动 } 返回 WheelDown:: MouseGetPos, MouseX, MouseY PixelGetColor, color, %MouseX%, %MouseY% if (color = 0x282828) { Send

代码 WheelUp:: MouseGetPos,MouseX,MouseY PixelGetColor,颜色,%MouseX%,%MouseY% 如果颜色=0x282828 { 发送,{sc149} } 如果颜色为0x282828,则为Else { 点击,启动 } 返回

WheelDown::
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
if (color = 0x282828)
{
    Send, {sc151}
}
Else if (color <> 0x282828)
{
    Click, WheelDown
}
return

我想你试图在屏幕上搜索某种颜色,同时分别向上或向下滚动。但是,单击,WheelDown不会触发您自己的AHK热键,因此您不会有递归热键,为了解决此问题,您可以使用Goto关键字显式执行相应的热键:


欢迎来到堆栈溢出。寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。代码似乎正确。但它停止工作意味着什么呢?它是否在某些窗口上工作,但在其他窗口中不工作?如果是这种情况,您可能需要以管理员身份运行脚本。
WheelDown::
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
if (color = 0x282828) {
    Send, {sc151}
}
Else if (color <> 0x282828) {
    Click, WheelDown
    Goto, WheelDown
}
return
WheelUp::
w_up_stop := False
w_down_stop := True
ToolTip, Scrolling up
while (color <> 0x282828 and !w_up_stop) {
MouseGetPos, MouseX, MouseY
    PixelGetColor, color, %MouseX%, %MouseY%
    Click, WheelUp
}
Send, {sc149}
return

WheelDown::
w_up_stop := True
w_down_stop := False
ToolTip, Scrolling Down
while (color <> 0x282828 and !w_down_stop) {
    MouseGetPos, MouseX, MouseY
    PixelGetColor, color, %MouseX%, %MouseY%
    Click, WheelDown
}
Send, {sc151}
return
#If w_down_stop or w_up_stop
Esc::
w_down_stop := False
w_up_stop := False