私は同様の問題を抱えていました。私がしたことは、アプリのインターフェイスとして機能する簡単なコンソール アプリを作成することでした。
メイン ループ内で、コンピューター上で実行されているプロセスを取得するコードを記述し、インスタンスが既に起動されているかどうかを確認しました。そうでない場合は、実行可能ファイルを起動しました。
Process[] iProcesslist = Process.GetProcesses();
foreach (Process process in iProcesslist)
{
if (process.ProcessName == "programName")
{
Log.Debug("ProgramName is currently running. Please wait for it to exit before launching again");
return 0;
}
else
{
using (var p = new Process())
{
try
{
p.StartInfo.FileName = @"C:\Users\username\Documents\Programming_Projects\programName\ProgramName\bin\Debug\programName.exe";
p.Start();
p.WaitForExit();
}
catch (Exception ex)
{
Log.Debug(ex.Message);
}
}
}
}
最善の解決策ではないかもしれませんが、迅速で、私が望むことを行います.