2

この関数を使用して、プロセスが開始されたかどうか、およびプロセスがいつ終了したかを確認します。しかし、IFのブレークポイントで使用しているimとリストカウントは常に0です。

そして、タスクamanagerを実行していると、そこにbf3.exe * 32が表示されます。では、ここで何が問題になっていますか?

private void isProcessRunning()
{                
    Process[] proclist = Process.GetProcessesByName("bf3.exe");

    if (proclist.Length > 0)
    {
        Logger.Write("Battlefield 3 Started");
        alreadyRun = true;
    }
    else if (alreadyRun == true)
    {
        Logger.Write("Battlefield 3 Exited");
    }            
}
4

2 に答える 2

10

ドキュメントから:

プロセス名は、Outlookなどのプロセスのわかりやすい名前であり、.exe拡張子やパスは含まれていません。GetProcessesByNameは、同じ実行可能ファイルに関連付けられているすべてのプロセスを取得および操作するのに役立ちます。たとえば、実行可能ファイルの実行中のすべてのインスタンスをシャットダウンするために、実行可能ファイル名をprocessNameパラメーターとして渡すことができます。

強調鉱山。

于 2012-08-30T20:28:12.140 に答える
0

.exeを削除します。それは私にとってはうまくいくようです。

于 2012-08-30T20:30:21.970 に答える