保证应用程序只运行一个实例[c#]

来源:互联网 发布:html5上传文件表单php 编辑:程序博客网 时间:2024/06/05 22:13

使用 互斥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;    }}
复制代码

 

~做事情贵在坚持~

原创粉丝点击