| 1234567891011121314151617181920212223 |
- using System.IO;
- using System.Runtime.InteropServices;
- namespace XafPet.Desktop;
- /// <summary>简单的单实例检测(按进程名匹配)</summary>
- public static class SingleInstanceHelper
- {
- [DllImport("user32.dll")]
- private static extern bool SetForegroundWindow(IntPtr hWnd);
- public static bool TryEnterFirstInstance()
- {
- var name = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
- var instances = System.Diagnostics.Process.GetProcessesByName(name);
- if (instances.Length > 1)
- {
- SetForegroundWindow(instances[0].MainWindowHandle);
- return false;
- }
- return true;
- }
- }
|