先说一个循环系统进程的方法吧,
            //首先取得你的程序当前进程
            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

让你的程序只能运行一个实例相关推荐

  1. 转:让程序只运行一个实例的四种方法

    先留着以后有用. 让程序只运行一个实例的四种方法 综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果 ...

  2. 让Java程序只运行一个实例

    一个程序可以在内存里面存在多个运行实例,比如,你可以打开多个微软的Word程序.但是,有些时候我们需要控制程序运行的实例只有一个,也就是说,该程序同一时刻在内存里面运行的只有一个实例.这样当这个程序在 ...

  3. Qt应用程序只运行一个实例

    在实际应用中,我们经常需要让应用程序只有一个实例,再打开新的文档或者页面时,只是替换现在的窗口或者新打开一个标签,而不是重新启动一次应用程序.Qt中是否可以做到这样呢,答案是肯定的,因为Qt本身可以直 ...

  4. C#实现让程序只能打开一个实例(总结3方法)

    代码:                         //=====创建互斥体法:=====             //bool blnIsRunning;             //Mutex ...

  5. 用互斥锁实现程序只能有一个实例

    HANDLE mSingleInstanceMutex = NULL;bool moreThanOneInstance() {mSingleInstanceMutex = CreateMutex(NU ...

  6. java类内存中只能运行一个实例对象

    方法:构造方法私有化(private) public class TestClass { private static TestClass obj = new TestClass (); //私有构造 ...

  7. feiq只能运行一个实例

    看网上教了很多方法,都说的杀掉feiq的进程,但是仍然启动不了,搜索了一下c盘,我的是win7-64bit的,在C:\Program Files有feiq这个文件夹,将其删除,就可以了.造成这种错误的 ...

  8. C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码

    2019独角兽企业重金招聘Python工程师标准>>> 我们开发WinFrom程序,很多时候都希望程序只有一个实例在运行,避免运行多个同样的程序,一是没有意义,二是容易出错.为了更便 ...

  9. C# WinForm 判断程序是否已经在运行,且只允许运行一个实例

    static class Program {   /// <summary>   /// 应用程序的主入口点.   /// </summary>   [STAThread]   ...

最新文章

  1. selenium.common.exceptions.SessionNotCreatedException
  2. Oracle 哈希连接原理
  3. python-sendcmd被动模式访问ftp
  4. Elasticsearch 索引数据多了怎么办,如何调优,部署?
  5. 记录一下 orangepi zero wifi联网
  6. 【spring mvc】annotation-driven 配置详解
  7. 金蝶KIS标准迷你版专业版 K3 引出报表提示保存文件失败,原因:Automation错误
  8. 今天凌晨,AWS一口气又双叒叕发布了N个新服务
  9. 简单的购物车和购物车结算
  10. [算法]发散思维能力题目
  11. Homework 1 : Knowledge items of C++ (part 1)
  12. 【附源码】计算机毕业设计JAVA小王防疫副食品配送商城
  13. 向Excel中插入图片批注,可批量插件图片,且图片不会变形
  14. 内存按字节 (Byte)编址,地址从A0000H到DFFFFH,共有多少个字节呢?
  15. 我幼儿园的弟看了都直呼简单的【栈和队列】
  16. Vue 引入高德地图 vue-amap
  17. c语言面试题(感觉比较好的题目),天博集团官网 -官方网站
  18. 长期连载_ [置顶]马浩然(AH)语录或机房日常[学习无关]
  19. UBTC主网4月份升级啦
  20. Flink最全面教程(自己总结的)

热门文章

  1. 【Nginx】输出/返回 HelloWorld
  2. JavaScript id_好程序员web前端分享Javascript中函数作为对象
  3. 华为荣耀20和x10比较_荣耀x10和荣耀20Pro哪个值得入手 荣耀x10和荣耀20Pro参数对比...
  4. java高并发(十五)J.U.C之FutureTask
  5. 深度学习——你应该掌握的数学知识
  6. 有了这套模板,女朋友再也不用担心我刷不动 LeetCode 了
  7. 为什么 Python 3 把 print 改为函数?
  8. 毕业即失业?你到底在焦虑什么
  9. 网页按钮跳转位置_阻止safari从网页跳转至app
  10. r roc函数_一棵树专栏 | ROC分析时一定要告诉R分析谁