开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4207|回复: 4

[源码] C#启动程序时检测运行多个实例

[复制链接]

0

精华

633

贡献

560

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
171
软币
3596
在线时间
375 小时
注册时间
2013-7-5
发表于 2013-7-5 18:19:46 | 显示全部楼层 |阅读模式
[free][/free]C# Code:

static class Program
{
   /// <summary>
   /// The main entry point for the application.
   /// </summary>
   [STAThread]
   static void Main()
   {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.ThreadException = new ThreadExceptionEventHandler(Application_ThreadException);//捕获系统所产生的异常。
      Application.ThreadExit = new EventHandler(Application_ThreadExit);
      
      #region 检查程序是否运行多实例
      if (Program.IsRunInstance())//检查程序是否运行多实例
      {
         Msg.Warning("系统已经启动!");
         Application.ExitThread();
         Application.Exit();
         return;
      }
      #endregion
      
      Application.Run(new frmMonitor());//运行主窗体
   }
   
   static void Application_ThreadExit(object sender, EventArgs e)
   {
      if (mutex != null)
      {
         mutex.ReleaseMutex();
         mutex = null;
      }
   }
   
   private static Mutex mutex = null;
   
   /// <summary>
   ///检查程序是否运行多实例
   /// </summary>
   public static bool IsRunInstance()
   {
      mutex = new Mutex(false, "指纹考勤系统");
      if (!mutex.WaitOne(0, false))//如果返回false则mutex已经被另一个线程所拥有
      {
         mutex.Close();
         mutex = null;
         return true;
      }
      return false;
   }
   
   private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
   {
      MonitorLog.AddLog(e.Exception.Message);//程序未知错误,写入日志
   }

评分

参与人数 3贡献 +3 赞扬 +3 收起 理由
jiongge + 1 感谢分享
1699903 + 1 Thanks
羽叶 + 3 + 1

查看全部评分

回复

使用道具 举报

0

精华

422

贡献

15

赞扬

帖子
36
软币
2079
在线时间
94 小时
注册时间
2013-6-18
发表于 2013-7-13 10:32:18 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

0

精华

0

贡献

966

赞扬

帖子
82
软币
3388
在线时间
285 小时
注册时间
2014-7-27
发表于 2014-8-14 20:56:14 | 显示全部楼层
使用2013开发的程序好像没有用了。
回复

使用道具 举报

0

精华

633

贡献

560

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
171
软币
3596
在线时间
375 小时
注册时间
2013-7-5
 楼主| 发表于 2014-8-20 20:54:57 | 显示全部楼层
ydong95 发表于 2014-8-14 20:56
使用2013开发的程序好像没有用了。

我没试过2003的,我试试
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-6 13:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表