我有一個測試應用程序,無法加載多次。它工作正常。如何防止多個應用程序加載,但允許加載其不同的實例?
private void App_OnStartup(object sender, StartupEventArgs e)
{
if (Process.GetProcessesByName(currentProcess.ProcessName).Length > 1)
{
MessageBox.Show("Instance already running", "Warning");
Application.Current.Shutdown();
}
}
}
但是,如果單個用戶想要與另一個實例創建此應用程序的快捷方式呢?例如"Test.exe" 2
此應用程序應該只加載一次,當它開始像「將Test.exe 2」。我在e.Args[0]
中收到了這個數字的實例,然後我需要保留它以便與此應用程序的另一個快捷方式進行比較。
所以這裏的問題是:我該怎麼做?如何將現有的流程與不同的實例編號進行比較。任何想法讚賞!
@ASh有另一種方式,而不是使用互斥體,你怎麼了認爲? –
爲什麼你稱之爲「實例號碼」?這只是一個命令行參數。無論如何,檢查進程名稱也沒有意義,用戶可以複製您的應用程序並重命名可執行文件。 – CodeCaster