WPF只运行一个实例 发表于 2022-03-11 | 分类于 wpf WPF只运行一个实例 正文12345678910111213141516171819202122232425[DllImportAttribute("User32.dll")]private static extern int FindWindow(string ClassName, string WindowName);[DllImport("user32.dll")]public static extern bool SetForegroundWindow(int hWnd);private void checkProcess(){ Console.WriteLine("程序启动"); Process current = Process.GetCurrentProcess(); //获取欲启动进程名 string strProcessName = Process.GetCurrentProcess().ProcessName; var processList = Process.GetProcessesByName(strProcessName); if (processList.Length > 1) { foreach (var process in processList) { if (process.Id == current.Id) continue; int hWnd = FindWindow(null, process.MainWindowTitle.ToString()); SetForegroundWindow(hWnd); } Environment.Exit(1);//退出程序 return; }} 调用 1234protected override void OnStartup(StartupEventArgs e){ checkProcess();}