これがvb.net用であることは知っていますが、このc#コードは、わずかな変更を加えるだけで使用できると確信しています。これは私にとってはうまくいきました。たぶんそれはそれを行うための最良の方法ではありませんが、私にとってはそれが最も簡単な方法でした。2番目のコピーを実行する前に、アプリケーションタイトルが現在実行されているかどうかを確認します。
これはProgram.csにあります
static frmMain Form;
[STAThread]
static void Main(string[] args)
{
bool blnCurrentlyRunning = false;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Process[] processes = Process.GetProcesses();
foreach (var item in processes)
{
if (item.MainWindowTitle.IndexOf("Application Title") != -1)
blnCurrentlyRunning = true;
}
if (!blnCurrentlyRunning)
{
Form = new frmMain();
Application.Run(Form);
}
else
{
Application.Exit();
}
}