无法使用AutoHotkey关闭某些进程

问题描述:

我无法创建小型AutoHotkey脚本来终止测试服务器上的所有vsjitdebugger.exe进程。下面的代码我有:无法使用AutoHotkey关闭某些进程

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情况仍然告诉我,过程(ES)存在,当我查看任务管理器时,同样数量的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

仅供参考在Windows 7上,我必须以管理员身份运行AutoHotkey以使其关闭一些任务 – 2011-01-27 05:48:24

假设你有一个系统,它taskkill.exe(我知道的Windows XP呢,我相信以后的所有版本做太多),您可以使用此行:

Run, %comspec% /c "taskkill /F /IM vsjitdebugger /T" 
+0

伟大的工作。我想知道为什么Process,Close不起作用,但调用taskkill呢? – 2009-10-16 01:09:04

+0

这可能与强烈杀死进程或杀死进程所产生的进程树有关。这就是/ F和/ T标志的用途。 – 2009-10-16 10:37:26

我没有做我的计算机上安装Microsoft Visual Studio中,所以我无法测试使用的确切过程。我用notepad.exe代替。使用您发布的简单循环,我可以成功关闭10个记事本实例。

下面的代码工作在我的电脑(操作系统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命令不会关闭进程,它只会等待进程不再存在。

+0

谢谢。看到我的更新2上面 – 2009-10-13 03:33:55

我刚刚升级到Windows 7,发现我有同样的问题,无法关闭进程。我的工作是在XP兼容模式下运行程序。

+0

在Windows 7上,我必须以管理员身份运行我的AutoHotkey才能使Process,Close,iexplore.exe工作 – 2011-01-27 05:47:14