保证应用程序只运行一个实例[c#]
2017-10-14 21:47
281 查看
使用 互斥Mutex 保证应用程序只运行一个实例, 代码如下:
~做事情贵在坚持~
sing System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Threading; using System.Runtime.InteropServices; namespace TestPlatform { static class Program { private static Mutex _mutex = null; private static string _mutexName = "ONLYONE_APP"; private static string _titleName = "Gps设备生产测试平台"; /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { // 单一实例 try { _mutex = Mutex.OpenExisting(_mutexName); MessageBox.Show(_titleName + "已经运行, 请确认!", "不可重复执行", MessageBoxButtons.OK, MessageBoxIcon.Stop); IntPtr _handle = FindWindow(null, _titleName); if (_handle != IntPtr.Zero) { //MessageBox.Show("find application."); ShowWindow(_handle, SW_RESTORE);// 还原 } Application.Exit(); } catch (WaitHandleCannotBeOpenedException ex) // 不存在此 mutex { _mutex = new Mutex(true, _mutexName); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FormMain()); _mutex.ReleaseMutex(); } } [DllImport("user32.dll")] private static extern IntPtr FindWindow(string className, string windowName); [DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private const int SW_RESTORE = 9; } }
~做事情贵在坚持~
相关文章推荐
- 保证应用程序只运行一个实例[c#]
- 保证C#应用程序只有一个实例在运行
- 保证c#应用程序只有一个实例运行
- 保证应用程序只有一个实例在运行
- C#让应用程序只运行一个实例的几种方法
- C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper
- C# 防止同一个应用程序运行多个实例
- 保证应用程序只有一个实例在运行——VS2008
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- c# 应用程序只运行一个实例
- 保证应用程序只有一个实例在运行
- 保证应用程序只有一个实例在运行
- 如何让应用程序仅运行一个实例(c#)
- 用C#给程序加启动画面并只允许一个应用程序实例运行[转]
- C#让应用程序只运行一个实例的几种方法
- VC保证应用程序只有一个实例在运行
- 如何让应用程序仅运行一个实例(c#)
- 保证应用程序只运行一个实例的技巧
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 保证只运行一个实例应用程序