我有一个 AutoHotkey 脚本,当我尝试再次运行它时,它会出现以下错误:
Could not close the previous instance of this script. Keep waiting?
这是一个非常简单的脚本,具有以下设置:
#NoEnv
#SingleInstance force
SendMode Input
DetectHiddenWindows, on
SetWinDelay, -1
我从命令行启动脚本。我尝试过使用
/f
/ /force
选项,但没有效果。
我想要文档中描述的
#SingleInstance Force
行为,其描述为:
跳过对话框并自动替换旧实例,效果与重新加载命令类似。
原来问题出在
SetWinDelay
指令上。
来自文档:
虽然允许延迟 -1(完全没有延迟),但建议至少使用 0,以增加即使 CPU 处于负载状态下脚本也能正确运行的信心。
延迟 0 会在内部执行 Sleep(0),这会将脚本时间片的剩余部分提供给可能需要它的任何其他进程。如果没有,Sleep(0) 将根本不会休眠。
当我将其设置为
-1
时,脚本从来没有时间处理其他命令,包括发送给它的任何退出命令。
确保
SetWinDelay
大于或等于 0。
你能帮我解决同样的问题吗
无环境 设置工作目录%A_ScriptDir% 坐标模式、鼠标、客户端 发送模式输入 #SingleInstance 强制 设置标题匹配模式 2 #WinActivateForce 设置控制延迟 1 设置WinDelay 0 设置按键延迟-1 设置鼠标延迟-1 设置批处理线-1
3:: MouseGetPos xpos、ypos 单击,550、117、向左 睡眠,50 点击、623、438 睡眠,50 发送,{F5} 睡眠,50 点击、633、446 睡眠,50 点击、633、446 睡眠,50 发送,{F1} 睡眠,50 鼠标移动,x 坐标,y 坐标,1 睡眠,50 点击 返回
4:: MouseGetPos xpos, ypos , 1 点击664、434 睡眠,50 鼠标移动,x 坐标,y 坐标,1 睡眠,50 点击 返回