110,571
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (!Program.PrevInstance())
{
Application.Run(new frmLogin());
}
}
//重新启动程序
string strAppFileName = Process.GetCurrentProcess().MainModule.FileName;
Process myNewProcess = new Process();
myNewProcess.StartInfo.FileName = strAppFileName;
myNewProcess.StartInfo.WorkingDirectory = Application.ExecutablePath;
myNewProcess.Start();
System.Environment.Exit(0);
static void Main()
{
bool createdNew;
Mutex mutex = new Mutex(true, Application.ProductName, out createdNew);
if (!createdNew)
{
MessageBox.Show("多重启动");
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
也可以这样,1.只能运行该程序的一个实例
private bool PrevInstance()
{
string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if ((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) > 0)
{
return true;
}
else
{
return false;
}
}
private void Form1_Load(object sender, EventArgs e)
{
if (PrevInstance() == true)
{
MessageBox.Show("该服务已启动");
Application.Exit();
}
}
重启直接
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location);
}