我无法创建一个小型AutoHotkey脚本来结束测试服务器上的所有vsjitdebugger.exe进程。这是我的代码:
Process, Exist, vsjitdebugger.exe
NewPID = %ErrorLevel%
if NewPID = 0
{
MsgBox Process doesnt exist
}
else
{
MsgBox Process exists
}
Process, WaitClose, vsjitdebugger.exe, 5
NewPID = %ErrorLevel%
if NewPID = 0
{
MsgBox Process no longer exists
}
else
{
MsgBox Process still exists
}
运行时,脚本告诉我(vsjitdebugger.exe)进程存在,正如我所料,但是当WaitClose发生时,它仍然告诉我存在进程,当我在任务管理器中查看相同的数量时vsjitdebugger.exe进程仍在运行。
我可以使用任务管理器手动结束vsjitdebugger.exe进程。
基本上我无法结束这些过程。任何人都可以帮我这个吗?感谢。
更新:我也尝试过这个简单的循环,但无济于事:
Loop, 100
{
Process, Close, vsjitdebugger.exe
}
更新2 :我尝试了下面建议的以下代码,但它只是永远停留在循环中,没有进程被杀死:
Loop
{
Process, Close, vsjitdebugger.exe
Process, wait, vsjitdebugger.exe, 0.1
NewPID = %ErrorLevel%
if NewPID = 0
{
break
}
}
答案 0 :(得分:3)
我的计算机上没有安装Microsoft Visual Studio,因此无法使用确切的过程进行测试。我使用notepad.exe代替。使用您发布的简单循环,我能够成功关闭10个记事本实例。
以下代码在我的计算机(WinXP SP3)上工作以关闭notepad.exe的所有实例
Process, Exist, notepad.exe
NewPID = %ErrorLevel%
if NewPID = 0
{
MsgBox, Process doesnt exist
}
else
{
MsgBox, Process exists
}
Loop
{
Process, Close, Notepad.exe
Process, wait, Notepad.exe, 0.1
NewPID = %ErrorLevel%
if NewPID = 0
{
break
}
}
Process, WaitClose, Notepad.exe
MsgBox, this works
我不确定这是否是导致任何问题的原因,但 WaitClose 命令不会关闭进程,它只会等待进程不再存在。
答案 1 :(得分:2)
假设你有一个带有taskkill.exe的系统(我知道Windows XP会这样做,我相信之后的所有版本都会这样做),你可以使用这一行:
Run, %comspec% /c "taskkill /F /IM vsjitdebugger /T"
答案 2 :(得分:1)
我刚刚升级到Windows 7,发现我遇到了无法关闭进程的问题。对我有用的是在XP兼容模式下运行该程序。