6

アプリケーションがまだ実行されていない場合は、アプリケーションを開く必要があります。

例: アプリケーションが実行されているかどうかを確認します。実行されていない場合は、実行を継続するために実行する必要があります。

私はもう試した:

System.Diagnostics.Process.Start ("location of the executable");

動作しますが、開くアプリケーションの特定のパスがありません

4

2 に答える 2

11

あなたのコメントに基づいて、それを検出するのは非常に簡単です。Process.GetProcesses() を列挙するか、Process.GetProcessByName() で明示的に探します。MSDN GetProcesses()ドキュメント ページにさまざまな例があります。

ただし、任意のアプリケーションを起動するのは簡単ではありません。環境 PATH 変数にある場合は、インストール場所を知らなくても起動できます。たとえば、マシンの [スタート] -> [ファイル名を指定して実行] ダイアログで IExplore.exe と入力するだけで実行できる Internet Explorer です。

実行可能ファイルが PATH にあることが確実であり、投稿で Process.Start() を介して既に起動できることを暗示している場合は、それで十分かもしれません。GetProcessByName への呼び出しを介して Process.Start() を呼び出す前に、実行中のプロセスに条件付きゲートが存在するかどうかを確認するだけで、次のようになります。

var runningProcessByName = Process.GetProcessesByName("iexplore");
if (runningProcessByName.Length == 0)
{
    Process.Start("iexplore.exe");
}

「iexplore」の代わりに、確認/実行するアプリケーションの名前を使用することは明らかです。プロセスを検索するときは拡張子なしの実行可能ファイル名を探していますが、起動しようとするとそれが含まれていることに注意してください。

アップデート

これは、C# で任意のファイルまたはファイルのリストを見つけるために簡単に変更できる良い例です。パスの任意の部分をターゲットにできる場合 (たとえば、Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)内を検索し、それが Program Files バリアントにあることが確実な場合)、検索かなり速くなります。ファイルが見つかったら、検索結果をローカルに保存することを検討することもできます。

C# で 20,000 を超えるファイルを含むディレクトリ内のファイルを見つける最も簡単な方法

于 2012-08-21T18:15:25.960 に答える
3

ミューテックスを試してください:

bool Creatednew;
Mutex mut=new Mutex(true,"someuniqeid",out Creatednew);
if(Creatednew)//this app isn't already running
{
//run your app
}
else
Debug.WriteLine("new app was terminated");
于 2014-07-03T19:58:32.560 に答える