.net中判断该应用程序是否已经启动,防止重复启动

B02512 2007-05-20 12:51:01
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace DH.Study
{
public class Start
{
[STAThread]
static void Main()
{
// 启动登录窗体和主窗体,m_bLoginSucess=true,表示登录成功
DH.Study.frmLogin frmLogin;
if (IsExistProce() == false)
{
frmLogin = new frmLogin();
frmLogin.ShowDialog();
}
else
{
return;
}
if (frmLogin.m_bLoginSucess == true)
{
DH.Study.frmMain frmMain = new frmMain();
Application.Run(frmMain);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
}
}
private static bool IsExistProce()
{
bool temp = false;
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
if (p.ProcessName.ToString().Trim() == "DH.vshost")
{
MessageBox.Show("此系统已经有一个实例在运行", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
temp = true;
break;
}
}
return temp;
}
}

}
一直要抱错,因为 DH.Study.frmLogin frmLogin;这句话执行的时候系统里面就已经具有了DH.vshost进程,所以IsExistProce()
始终为True,所以始终启动不了程序,请问怎么改进谢谢?
...全文
215 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner2050 2007-05-20
  • 打赏
  • 举报
回复
**.vshost
是作软件的时候调式用的东西。

发布的时候应该删除。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧