您的位置:首页 > 其它

winform程序限制只能打开一个进程

2014-05-23 17:30 183 查看
有很多方案,先来最傻瓜式的 :

static class Program

{

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

if
(System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length
> 1)

{

MessageBox.Show("已经有一个运行了");

}

else

{

Application.Run(new Form1());

}

}

}

再来一种

static class Program

{

[STAThread()]

public static void Main()

{

bool ret;

System.Threading.Mutex m = new
System.Threading.Mutex(true, Application.ProductName, out ret);

if (ret)

{

//System.Windows.Forms.Application.EnableVisualStyles(); //这两行实现 XP 可视风格

//System.Windows.Forms.Application.DoEvents();

System.Windows.Forms.Application.Run(new Form1());

// frmMain 为你程序的主窗体,如果是控制台程序不用这句

m.ReleaseMutex();

}

else

{

MessageBox.Show(null,
"有一个和本程序相同的应用程序已经在运行,请不要同时运行多个本程序。\n\n这个程序即将退出。 ", Application.ProductName, MessageBoxButtons.OK,
MessageBoxIcon.Warning);

// 提示信息,可以删除。

Application.Exit();//退出程序

}

}

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