让你的程序只能运行一个实例
//首先取得你的程序当前进程
Process current = Process.GetCurrentProcess();
//用你进程的名字到系统进程中取
Process[] processes = Process.GetProcessesByName(current.ProcessName);
//真的取到了多个就循环他们
foreach (Process process in processes)
{
//因为即使进程名一致但是进程ID仍然会不同,如果在你系统里存在两个你的程序了
if (process.Id != current.Id)
{
if (process.MainModule.FileName
== current.MainModule.FileName)
{
//经过多个判断可以确定你程序的进程在系统中已经有存在了,那么就关掉它吧
MessageBox.Show("程序已经运行!", Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Application.Exit();
return;
}
}
}
再说另一种使用互斥对象的方法,
//这里第2个参数是保证你程序唯一性的而一个字符串
static Mutex mutex = new Mutex(false, "f880a127-9d21-4907-aa83-6041dc0faa4a");
if (!mutex.WaitOne(1000,false)) //等待1秒, 如果有相同实例运行则给用户提示
{
MessageBox.Show("程序已在运行,如果仍有问题,请检查是否已在系统进程中运行。");
return;
}
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
finally { mutex.ReleaseMutex(); }
总结完毕.
转载于:https://www.cnblogs.com/wzc998/archive/2008/05/31/1211287.html
让你的程序只能运行一个实例相关推荐
- 转:让程序只运行一个实例的四种方法
先留着以后有用. 让程序只运行一个实例的四种方法 综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果 ...
- 让Java程序只运行一个实例
一个程序可以在内存里面存在多个运行实例,比如,你可以打开多个微软的Word程序.但是,有些时候我们需要控制程序运行的实例只有一个,也就是说,该程序同一时刻在内存里面运行的只有一个实例.这样当这个程序在 ...
- Qt应用程序只运行一个实例
在实际应用中,我们经常需要让应用程序只有一个实例,再打开新的文档或者页面时,只是替换现在的窗口或者新打开一个标签,而不是重新启动一次应用程序.Qt中是否可以做到这样呢,答案是肯定的,因为Qt本身可以直 ...
- C#实现让程序只能打开一个实例(总结3方法)
代码: //=====创建互斥体法:===== //bool blnIsRunning; //Mutex ...
- 用互斥锁实现程序只能有一个实例
HANDLE mSingleInstanceMutex = NULL;bool moreThanOneInstance() {mSingleInstanceMutex = CreateMutex(NU ...
- java类内存中只能运行一个实例对象
方法:构造方法私有化(private) public class TestClass { private static TestClass obj = new TestClass (); //私有构造 ...
- feiq只能运行一个实例
看网上教了很多方法,都说的杀掉feiq的进程,但是仍然启动不了,搜索了一下c盘,我的是win7-64bit的,在C:\Program Files有feiq这个文件夹,将其删除,就可以了.造成这种错误的 ...
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
2019独角兽企业重金招聘Python工程师标准>>> 我们开发WinFrom程序,很多时候都希望程序只有一个实例在运行,避免运行多个同样的程序,一是没有意义,二是容易出错.为了更便 ...
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例
static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] ...
最新文章
- selenium.common.exceptions.SessionNotCreatedException
- Oracle 哈希连接原理
- python-sendcmd被动模式访问ftp
- Elasticsearch 索引数据多了怎么办,如何调优,部署?
- 记录一下 orangepi zero wifi联网
- 【spring mvc】annotation-driven 配置详解
- 金蝶KIS标准迷你版专业版 K3 引出报表提示保存文件失败,原因:Automation错误
- 今天凌晨,AWS一口气又双叒叕发布了N个新服务
- 简单的购物车和购物车结算
- [算法]发散思维能力题目
- Homework 1 : Knowledge items of C++ (part 1)
- 【附源码】计算机毕业设计JAVA小王防疫副食品配送商城
- 向Excel中插入图片批注,可批量插件图片,且图片不会变形
- 内存按字节 (Byte)编址,地址从A0000H到DFFFFH,共有多少个字节呢?
- 我幼儿园的弟看了都直呼简单的【栈和队列】
- Vue 引入高德地图 vue-amap
- c语言面试题(感觉比较好的题目),天博集团官网 -官方网站
- 长期连载_ [置顶]马浩然(AH)语录或机房日常[学习无关]
- UBTC主网4月份升级啦
- Flink最全面教程(自己总结的)
热门文章
- 【Nginx】输出/返回 HelloWorld
- JavaScript id_好程序员web前端分享Javascript中函数作为对象
- 华为荣耀20和x10比较_荣耀x10和荣耀20Pro哪个值得入手 荣耀x10和荣耀20Pro参数对比...
- java高并发(十五)J.U.C之FutureTask
- 深度学习——你应该掌握的数学知识
- 有了这套模板,女朋友再也不用担心我刷不动 LeetCode 了
- 为什么 Python 3 把 print 改为函数?
- 毕业即失业?你到底在焦虑什么
- 网页按钮跳转位置_阻止safari从网页跳转至app
- r roc函数_一棵树专栏 | ROC分析时一定要告诉R分析谁