.net中如何只允许运行一个程序实例
2012-01-20 13:44
351 查看
如何使一个Windows应用程序只运行一个实例,看如下代码:
后来,又查到了一个方法,看下面的代码:using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
namespace MyMonitor
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
bool bCreatedNew;
//"EMonitor" 是我的程序的主窗体的名称,但是这个名称是可以随便
//叫的,只是给互斥体取个名字而已
Mutex m = new Mutex(false, "EMonitor", out bCreatedNew);
if (bCreatedNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new EMonitor());
}
else
{
MessageBox.Show("不能打开多于一个程序实例!");
}
}
}
}
可以看到,第二段代码采用Mutex提供的互斥功能。
using System; using System.Collections.Generic; using System.Windows.Forms; using System.Diagnostics; namespace MyMonitor { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Process[] ps = Process.GetProcessesByName(Process .GetCurrentProcess().ProcessName); if (ps.Length <= 1) { Application.EnableVisualStyles(); Application .SetCompatibleTextRenderingDefault(false); Application.Run(new EMonitor()); } else { MessageBox.Show("不能打开多于一个程序实例!"); } } } }原理上来说,没有什么难的,只是不知道而已。
后来,又查到了一个方法,看下面的代码:using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
namespace MyMonitor
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
bool bCreatedNew;
//"EMonitor" 是我的程序的主窗体的名称,但是这个名称是可以随便
//叫的,只是给互斥体取个名字而已
Mutex m = new Mutex(false, "EMonitor", out bCreatedNew);
if (bCreatedNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new EMonitor());
}
else
{
MessageBox.Show("不能打开多于一个程序实例!");
}
}
}
}
可以看到,第二段代码采用Mutex提供的互斥功能。
相关文章推荐
- C#程序只允许运行一个实例的解决方案 分类: .NET 2012-12-15 12:03 438人阅读 评论(0) 收藏
- 只允许允许一个程序实例,即使是通过虚拟桌面方式连接过来的,也是只允许一个人运行。
- C#程序只允许运行一个实例的解决方案
- 解决C# WINFORM程序只允许运行一个实例的几种方法详解
- C# 创建互斥程序_只允许运行一个程序实例
- .NET限制程序一次只能运行一个实例
- 如何做到只允许一个实例运行?
- C# 程序只允许运行一个实例的正确代码
- 只允许允许一个程序实例,即使是通过虚拟桌面方式连接过来的,也是只允许一个人运行。
- 使用C#实现只允许运行一个程序实例的几种方法
- 如何让程序只运行一个实例(转)
- delphi程序只允许运行一个实例的简单方法:
- C# 创建互斥程序_只允许运行一个程序实例
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- 仅允许程序运行一个实例代码实现
- c# Winform 如何实现程序只能同时运行一个实例
- 实现同时只允许运行一个程序实例
- [转]实现同时只允许运行一个程序实例
- C#程序只允许运行一个实例的解决方案
- 如何在 .net 中只运行一个进程实例?