修复重复启动的问题
This commit is contained in:
parent
4840715ef8
commit
8db0824659
|
@ -1,4 +1,5 @@
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using System.Threading;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
|
|
||||||
|
@ -11,6 +12,7 @@ using RustTools.Models;
|
||||||
using RustTools.Services;
|
using RustTools.Services;
|
||||||
using RustTools.ViewModels;
|
using RustTools.ViewModels;
|
||||||
using RustTools.Views;
|
using RustTools.Views;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
namespace RustTools;
|
namespace RustTools;
|
||||||
|
|
||||||
|
@ -45,6 +47,11 @@ public partial class App : Application
|
||||||
public App()
|
public App()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("RustTools");//获取指定的进程名
|
||||||
|
if (myProcesses.Length > 1) //如果可以获取到知道的进程名则说明已经启动
|
||||||
|
{
|
||||||
|
Exit(); //关闭系统
|
||||||
|
}
|
||||||
|
|
||||||
Host = Microsoft.Extensions.Hosting.Host.
|
Host = Microsoft.Extensions.Hosting.Host.
|
||||||
CreateDefaultBuilder().
|
CreateDefaultBuilder().
|
||||||
|
@ -104,4 +111,27 @@ public partial class App : Application
|
||||||
|
|
||||||
await App.GetService<IActivationService>().ActivateAsync(args);
|
await App.GetService<IActivationService>().ActivateAsync(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Mutex mutex;
|
||||||
|
private void InitializeMutex()
|
||||||
|
{
|
||||||
|
// Mutex name should be unique for your application.
|
||||||
|
string mutexName = "Global\\MyWinUIAppMutex";
|
||||||
|
bool createdNew;
|
||||||
|
|
||||||
|
// Try to create the Mutex. If it fails, another instance is already running.
|
||||||
|
mutex = new Mutex(true, mutexName, out createdNew);
|
||||||
|
if (!createdNew)
|
||||||
|
{
|
||||||
|
// Another instance is already running.
|
||||||
|
Environment.Exit(0); // Exit the current application.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clean up the Mutex when the application exits.
|
||||||
|
//Current.Exiting += (sender, args) =>
|
||||||
|
//{
|
||||||
|
// mutex.Close();
|
||||||
|
// mutex.Dispose();
|
||||||
|
//};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user