AutoHotkey:无法关闭此脚本的前一个实例。还等吗?

问题描述 投票:0回答:2

我有一个 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
行为,其描述为:

跳过对话框并自动替换旧实例,效果与重新加载命令类似。

autohotkey
2个回答
4
投票

原来问题出在

SetWinDelay
指令上。

来自文档:

虽然允许延迟 -1(完全没有延迟),但建议至少使用 0,以增加即使 CPU 处于负载状态下脚本也能正确运行的信心。

延迟 0 会在内部执行 Sleep(0),这会将脚本时间片的剩余部分提供给可能需要它的任何其他进程。如果没有,Sleep(0) 将根本不会休眠。

当我将其设置为

-1
时,脚本从来没有时间处理其他命令,包括发送给它的任何退出命令。

确保

SetWinDelay
大于或等于 0。


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 点击 返回

© www.soinside.com 2019 - 2024. All rights reserved.