2009-10-12 76 views
2

我無法創建小型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

回答

2

假設你有一個系統,它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

3

我沒有做我的計算機上安裝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

1

我剛剛升級到Windows 7,發現我有同樣的問題,無法關閉進程。我的工作是在XP兼容模式下運行程序。

+0

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