C# WinForm:
我现在有这样一个需求:一个exe只运行一次,即当这个exe未运行时,你双击这个exe,就正常打开这个程序;
如果这个exe已经处于运行状态,当你再去双击这个exe时,要求将这个exe正处于运行状态的程序显示到桌面最前。
我参考了很多资料,觉得用互斥量Mutex处理较合适,下面是实现的代码:/// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool isAppRunning = false;
            Mutex mutex = new Mutex(true,Process.GetCurrentProcess().ProcessName,out isAppRunning);
            if (!isAppRunning)
            {
                MessageBox.Show("本程序已经在运行了,请不要重复运行!");
                Environment.Exit(1);
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
这样就实现了程序只运行一次的限制,但是美中不足的是:
当程序处于运行时,你再双击这个exe时是弹出MessageBox显示提示信息而已,
我想实现的是:当程序处于运行时,你再双击这个exe时,将已经处于运行状态的这个程序提到桌面最前。
不知道是否需要相关API,如FindWindow、SendMessage等。
类似以上代码而未解决将已运行程序提到桌面最前的请勿贴上来,希望给予帮助,谢谢。