winform 中怎样实现一个程序只能在一台计算机上运行
来源:互联网 发布:医学软件 知乎 编辑:程序博客网 时间:2024/05/02 01:20
using System.Threading; //需手动添加引用
static void Main()
{
bool initiallyOwned = true;
bool isCreated;
Mutex m = new Mutex( initiallyOwned, "MyTest", out isCreated); //Mutex为System.Thread;中的类
if ( !(initiallyOwned && isCreated) )
{
MessageBox.Show( "抱歉,程序只能在一台机上运行一个实例!", "提示" );
Application.Exit();
}
else
{
Application.Run( new MainForm() );
}
}方法二:
直到现在,为了在Windows下满足上述约束,开发者最常用的方法仍然是使用有名互斥体(named mutex)技术(参见5.7.2节)。然而采用这种技术来满足上述约束存在以下缺点:该技术具有使互斥体的名字被其他应用程序所使用的较小的、潜在的风险。在这种情况下该技术将不再有效并且会造成很难检测到的bug。
该技术不能解决我们仅允许一个应用程序产生N个实例这种一般的问题。
幸而在System.Diagnostics.Process类中拥有GetCurrentProcess()(返回当前进程)和GetPro- cesses()(返回机器上所有的进程)这样的静态方法。在下面的程序中我们为上述问题找到了一个优雅且简单的解决方案。
通过方法参数指定了远程机器的名字后,GetProcesses()方法也可以返回远程机器上所有的进程。
- winform 中怎样实现一个程序只能在一台计算机上运行
- 一台机器只能运行一个程序
- c#实现一个程序在一台电脑上只运行一个实例
- 如何实现单点登录(一台计算机,只能运行一个客户端)
- c# Winform 如何实现程序只能同时运行一个实例
- WinForm中限制程序只能运行一个实例
- winform程序打包后 只能运行一个
- WINFORM判断程序是否运行,且只能运行一个实例
- 限制同一台机器上只能运行一个实体(.NET中VB语言)
- WinForm限制客户程序只能运行一个实例
- 怎样让我的MFC程序只能运行一个实例?
- 一个程序在计算机中到底是如何运行的?
- 一个程序在计算机中到底是如何运行的?
- 一个程序在计算机中到底是如何运行的?
- 关于“如何保证自己开发的软件只能在一台电脑上运行问题”的思考
- 在.net中 每次只能打开一个WinForm应用程序
- 在一台机器上,怎样开启两个mysql服务
- 在一台机器上,怎样开启两个mysql服务
- MEF简介: Managed Extensibility FrameWork
- 异常汇总:未定义构造函数
- ADO.NET Entity FrameWork
- 关于向方法中传递参数的问题
- 如何解决窗体假死
- winform 中怎样实现一个程序只能在一台计算机上运行
- Mutex 与Monitor 的区别
- 线程间操作无效: 从不是创建控件“t1”的线程访问它
- Delegate.Combine
- GDB命令大全(2)
- 模仿鼠标操作代码
- sql server 大量数据操作
- 给js添加tim方法
- 你能想到的sql查询,查询表,数据库,索引。