首页 > 编程语言 >c# 防止exe重复启动

c# 防止exe重复启动

时间:2024-09-05 10:25:47浏览次数:11  
标签:exe false 互斥 c# System 重复 hasHandle Mutex mutex

using System;
using System.Threading;
using System.Windows.Forms;

namespace MyWinFormsApp
{
     static class Program
     {
         // 定义一个全局互斥体
         private static Mutex mutex = new Mutex(false, "MyWinFormsApp_Mutex");

        [STAThread]
         static void Main()
         {
             // 尝试获取互斥体的所有权
             bool hasHandle = false;
             try
             {
                 hasHandle = mutex.WaitOne(0);
                 if (!hasHandle)
                 {
                     MessageBox.Show("程序已经在运行中,请勿重复启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                     return;
                 }
             }
             catch (AbandonedMutexException)
             {
                 hasHandle = true;
             }

            Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
             Application.Run(new MainForm());

            // 释放互斥体
             if (hasHandle)
             {
                 mutex.ReleaseMutex();
             }
         }
     }
}

标签:exe,false,互斥,c#,System,重复,hasHandle,Mutex,mutex
From: https://www.cnblogs.com/hlm750908/p/18397862

相关文章

  • 网站提示“Duplicate entry:插入重复记录”错误如何解决
    当您遇到“Duplicateentry:插入重复记录”的错误时,这意味着您尝试向数据库中插入的数据违反了唯一性约束。这种情况通常发生在以下几种情形下:主键索引重复:尝试插入的记录的主键值与表中已有的主键值相同。唯一索引重复:如果表中有一个或多个列被定义为具有唯一约束的唯一索引,而......
  • C#的ugui与XLua整合的案例
    网上的案例大部分是官方的案例,个人的案例还是比较少的。我这个案例比较通俗易懂unity需要的控件有两个:一个是button和input  C#代码如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingXLua;usingUnityEngine.UI;usingSystem;publ......
  • ngui物件在Scenes中有显示,在game视图中没有显示的原因
    我们在创建物件的时候,在scenes视图中用到的是全局的camera,所以不管是3d物件还是ugui物件,ngui物件都是有显示的。但是在game视图中,3d物件和ugui物件都是用到的是全局的camera。ngui用到的是它本身自带的camera。所以我们只要在ngui中的camera能显示出来,那么我们就能在game视图中显示......
  • 如何使用JavaScript遍历对象
    一、使用for-in循环——简单直接,快速上手for-in循环是最基础也是最常用的对象遍历方法。它语法简单,适合初学者快速掌握constuser={name:'Alice',age:25,job:'Engineer'};for(constkeyinuser){constvalue=user[key];console.log(`${key......
  • Chrome 浏览器插件获取网页 window 对象(方案三)
    前言最近有个需求,是在浏览器插件中获取window对象下的某个数据,当时觉得很简单,和document一样,直接通过嵌入content_scripts直接获取,然后使用sendMessage发送数据到插件就行了,结果发现不是这样滴...在这里不推荐使用runtime.executeScript进行注入,很可能会报错:Refus......
  • 易优CMS使用过程遇到问题汇总
    列表页模板不显示数据确认模型是否关联正确。检查模板标签是否书写正确。单页模板无法显示内容确认单页是否已发布。检查单页模板路径是否正确。图片无法上传或显示检查服务器是否开启了文件上传权限。确认上传目录是否有写入权限。文章详情页链接错误重......
  • IDA 出现 Decompilation failure: xxx: call analysis failed Please refer to the ma
    题目https://files.buuoj.cn/files/3519510dd82111302327c73a17602a65/attachment.zipF5反汇编发现弹出这个窗口Decompilationfailure:401095:callanalysisfailedPleaserefertothemanualtofindappropriateactions右键查看TextView来到这个地址进入这个函......
  • opc ua设备数据 转 IEC61850项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 准备工作 24 配置VFBOX网关采集OPCUA的数据 25 用IEC61850协议转发数据 46 网关使用多个逻辑设备和逻辑节点的方法 67 案例总结 71 案例说明设置网关采集OPCUA设备数据把采集的数据转成IEC61850协议转发给其他系统。2 VFBO......
  • 网站提示“503 Service Unavailable:服务器暂时无法处理请求”错误如何解决
    当您遇到“503ServiceUnavailable:服务器暂时无法处理请求”的错误时,这表示服务器当前不能处理请求,但预计稍后可以恢复。这可能是由于服务器过载、正在进行维护、配置错误或其他暂时性问题。以下是解决此类问题的一些步骤:检查服务器负载:确认服务器是否过载。如果服务器资源(......
  • 轻松应对亿级数据,HBase Scan读取速度翻倍
    轻松应对亿级数据,HBaseScan读取速度翻倍HBase是一种基于Hadoop的分布式列存储数据库,它支持大规模结构化数据的存储和随机访问。在HBase中,扫描(Scan)是一种读取表中数据的方式,它可以返回表中满足条件的一部分或全部数据。本文将介绍HBase中扫描的概念、使用方法和性能优化。1扫描......