2

テスト サーバーですべての 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 が発生すると、プロセスが存在することがわかり、タスク マネージャーを見ると、同じ量の 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
    }   
}
4

3 に答える 3

2

taskkill.exe がインストールされたシステムがあると仮定すると (Windows XP が実行されていることは知っていますが、それ以降のすべてのバージョンも実行されていると思います)、次の行を使用できます。

Run, %comspec% /c "taskkill /F /IM vsjitdebugger /T"
于 2009-10-15T21:18:39.037 に答える
1

Windows 7 にアップグレードしたところ、プロセスを閉じることができないという同じ問題があることがわかりました。私にとってうまくいったのは、プログラムをXP互換モードで実行することでした。

于 2010-03-01T21:56:53.327 に答える