您的位置:首页 > 其它

保证程序只有一个实例运行并且先将旧实例关闭再运行新实例

2007-12-10 14:03 465 查看
using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Threading;

using System.Diagnostics;

using System.Reflection;

namespace MyClient

{

static class Program

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]

static void Main(string[] args)

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

//bool blnCreate;//Another method to make sure only one instance

//Mutex m = new Mutex(true, "MyClient", out blnCreate);

//if (blnCreate)

CloseRunningInstance();

Application.Run(new MainFrm());

}

//Close the existed instance of my application

static void CloseRunningInstance()

{

Process current = Process.GetCurrentProcess();

Process[] processes = Process.GetProcessesByName(current.ProcessName);

//Loop through the running processes in with the same name

foreach (Process process in processes)

{

//Ignore the current process

if (process.Id != current.Id)

{

//Make sure that the process is running from the exe file.

if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName)

{

//Close the other process instance.

process.Kill();

process.WaitForExit();

}

}

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: