Winfrom 程序不能重复启动

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Demo
{
    static class Program
    {
        /// <summary>
        /// 用于判断程序是否有重复启动的互斥量
        /// </summary>
        static System.Threading.Mutex _mutex;

        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {

            //是否可以打开新进程
            bool createNew;

            /// 获取程序集Guid作为唯一标识,禁止程序重复启动
            Attribute guid_attr = Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(GuidAttribute));
            string guid = ((GuidAttribute)guid_attr).Value;
            _mutex = new System.Threading.Mutex(true, guid, out createNew);

            if (false == createNew)
            {
                MessageBox.Show("程序已在本机运行,不能重复运行!", "系统消息");
                Application.Exit();
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                _mutex.ReleaseMutex();
                Application.Run(new FrmMain());
            }
        }
    }
}
时间: 2024-12-09 05:16:14

Winfrom 程序不能重复启动的相关文章

java程序 避免重复启动的方法

http://www.cppblog.com/biao/archive/2010/12/23/137254.html 1 package swingtest; 2 3 import java.io.File; 4 5 import java.io.RandomAccessFile; 6 7 import java.nio.channels.FileChannel; 8 9 import java.nio.channels.FileLock; 10 import java.util.concurr

4.锁——避免重复启动同一程序

/*************************************************四.主题: 锁——避免重复启动同一程序 锁 捕捉唯一性 *************************************************/ ============================================================================= CREATE TABLE TEST5 (  ID    NUMBER(5),  NAM

C# 避免程序重复启动

using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Threading; namespace WindowsFormsApplication1 { static class Program { /// <summary> /// The main entry point for the application. /// </s

C# 禁止同一个客户端重复启动,但允许不同客户端的同一进程启动

安装一个客户端时,多次启动禁止,但安装该客户端两个以上时,允许同时运行,且每个只允许运行一次. 首先判断进程运行次数,进程无运行时,运行打开,进程运行个数大于1时,读取每个进程路径,判断路径是否重复,有重复则不允许启动,无重复,则运行启动. #region 判断系统是否已启动 string str = ""; str = System.Diagnostics.Process.GetCurrentProcess().ProcessName; System.Diagnostics.Proc

OpenCV 64位时 应用程序无法正常启动0x000007b 问题解决

这问题根本不是DirectX问题,不知道网上怎么这么这样的回复.而且也不亲自验证一下.下面将自己花很多时间才解决的方式整理一下. 因为一般情况下你配置的OpenCV加入系统环境变量的都是X86下的bin,所以当你将Visual Stdio工程改为X64时,当然会在程序运行时,由于.exe无法找到合适的动态链接库而出现问题. 解决办法是,将你的OpenCV的X64下的bin文件夹,加入系统环境变量.如笔者的电脑时OpenCV 2410, 配置时将 D:\Program Files\opencv\b

[转] ASP.NET WEB API程序在VS启动或发布到IIS后启动后发生 - Could not load file or assembly &#39;System.Web.Http.WebHost’异常,无法正常访问

Just do Copy Local = true in the properties for the assembly(System.Web.Http.WebHost) and then do a redeploy, it should work fine. http://stackoverflow.com/questions/20323107/could-not-load-file-or-assembly-system-web-http-webhost-after-published-to-

应用程序无法正常启动Ox000007b,请。。。。。。

在上一篇中,opencv的配置好了,但是又出现这个问题,网上好了半天,大体发现还是配置的问题,环境变量,现在的win8+vs2010+opencv2.44  ...记录下,本来这个问题以前就解决过的,但是忘了,还是得总结下,学会记录,经验积累. 根据网上的教程,配了好多次,环境变量,关键是得重启,所以也不知道是哪里的对.索性都截图. 应用程序无法正常启动Ox000007b,请......,布布扣,bubuko.com

升级Windows10,安装程序无法正常启动&无法初始化工作目录

这里主要针对使用微软官方升级助手升级Windows10,遇到安装程序无法正常启动&安装程序无法初始化工作目录错误提示的解答 一.通过微软http://www.microsoft.com/zh-cn/software-download/windows10下载适用于个人操作系统的升级助手 二.保持网络通畅,下载完成后以管理员身份运行,正常情况下按照向导即可完成升级. ===================================================================

共享一个防止脚本重复启动的shell脚本

项目的一个需求:为防止脚本重复调度,导致同时运行时相互冲突,需要在脚本运行开始前创建一个文件,结束时删除. 脚本启动时判断一下文件是否存在,如果存在则退出. 最开始这样做没发现问题,但跑一段时间后,发现如果进程中间退出没删除文件就会出现问题. 而且有时希望等待一段时间后不管有没有已启动同名脚本,都往下走. 基于以上考虑,最近将这个防止重复启动的逻辑抽离出来成为独立脚本,并增加了一些控制逻辑,这样以后需要类似功能直接调用这个脚本就好. 流程图: 代码: #! /bin/sh # singleton