`

只能启动单个程序

    博客分类:
  • C#
 
阅读更多
 bool ret;
            System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out   ret);
            if (ret)
            {
                System.Windows.Forms.Application.EnableVisualStyles();   //这两行实现   XP   可视风格   
                System.Windows.Forms.Application.DoEvents();

                ConfigurationManager.RefreshSection("appSettings");
                string storeId = ConfigurationManager.AppSettings["StoreID"];
                if (string.IsNullOrEmpty(storeId.Trim()))
                {
                    FrmInputStoreMsg frm = new FrmInputStoreMsg();
                    frm.ShowDialog();
                    if (frm.IsSucceed)
                    {
                        Application.Run(new FrmMain());
                    }
                }
                else
                {
                    Application.Run(new FrmMain());
                }

                m.ReleaseMutex();
            }
            else
            {
                MessageBox.Show(null, "有一个和本程序相同的应用程序已经在运行,请不要同时运行多个本程序。\n\n这个程序即将退出。", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                // 提示信息,可以删除。   
                Application.Exit();//退出程序   
            }

 

分享到:
评论

相关推荐

    利用pragma data_seg实现程序只能单个实例运行

    在标题“利用pragma data_seg实现程序只能单个实例运行”中,关键点在于`#pragma data_seg`的使用。`#pragma data_seg`允许我们指定变量存储的位置,例如,我们可以将特定的全局变量放到一个共享的内存段,这样当多...

    c++ windows下限制软件只能打开一个(进程单开)

    在Windows API中,我们可以使用`CreateMutex`函数创建一个互斥体对象,然后在程序启动时尝试获取这个互斥体。如果获取成功,说明没有其他进程持有该锁,可以继续运行;如果失败,则说明已有其他进程持有,此时不应再...

    Startup Helper:启动助手将帮助您启动每天使用的程序。-开源

    在此启动过程中,用户可以通过启动助手GUI控制等待时间,暂停程序,跳过单个程序,或超过等待时间并立即启动下一个程序。 这个项目是用Java制作的,因此应该是多平台的。 但是,我只能在Windows XP计算机上对其进行...

    应该程序只有一个实例

    c++ vs2008 应用程序只有一个实例 简单的demo 启动程序

    解除windows 64位系统对32位应用程序的内存限制

    通常,32位程序在64位系统上最多只能访问约4GB的虚拟内存,尽管实际硬件可能提供更多的资源。这个限制可能会导致大型或者多任务处理的32位应用在运行时遇到性能瓶颈。然而,通过一些方法,我们可以解除这一限制,让...

    Winform只允许运行单个exe程序,第二次点击的时候,可以阻止程序的打开,并且实现了跨进程通信

    在Windows桌面应用开发中,有时我们希望确保一个应用程序只能运行一个实例,防止用户无意或恶意地启动多个相同的应用实例。这种需求通常通过检测系统中是否已有相同进程运行来实现,而Winform应用也不例外。本话题将...

    硬盘分区完全模拟程序

    4. GPT分区(GUID分区表):相较于传统的MBR(主引导记录)分区方式,GPT分区支持更多分区数量(最大128个),且单个分区大小不受限制,适用于大容量硬盘和UEFI启动模式。 该程序中的文件有以下作用: 1. SCREEN....

    启动模式生命周期测试demo

    在Android应用开发中,启动模式(Launch Mode)是关乎应用程序组件(特别是Activity)生命周期的关键概念。它决定了当用户启动一个Activity或者系统需要重新创建Activity时,如何管理和实例化Activity的实例。通过...

    支持大容量U盘启动(附DOS版GHOST)

    这通常涉及到制作可启动U盘的过程,包括创建启动扇区、加载启动程序等。USBOOT 1.7工具就是用来实现这一目标的,它能够帮助用户将U盘格式化为可启动设备,支持从大容量U盘启动计算机。 USBOOT 1.7是这个压缩包中的...

    msn 单个文件版本

    这种单文件版本通常包含了所有必要的组件和库,使得用户无需经过完整的安装过程,只需运行这个文件即可启动MSN服务。这对于那些系统资源有限或者遇到安装问题的用户来说,是一个方便的解决方案。 描述中的"不能上...

    Unity3D中如何终止协同程序Coroutine1

    - **单个协同程序终止**:可以使用`StopCoroutine(string methodName)`来终止指定的协同程序。同样,这里需要通过字符串来指定协同程序的方法名。这种方法仅能终止当前`MonoBehaviour`组件上的协同程序。 - **终止...

    CoDeSys编程手册(含车库门程序介绍)

    创建并运行一个工程包括启动CoDeSys并创建一个工程、编写PLC程序、为在PLC上运行和控制程序定义资源对象、在PLC中运行并查看应用、监控应用程序等步骤。编写PLC程序时,需要在PLC_PRG中声明变量,然后在PLC_PRG的...

    IDL程序发布、部署说明

    需要注意的是,Runtime发布方式下,程序无法直接执行IDL的.pro源代码文件,只能运行编译后的二进制文件。 ##### 2.2 虚拟机免费发布 虚拟机发布是一种免费的IDL程序发布方式,适用于IDL支持的所有操作系统平台。...

    VIsual Basic程序编写汉诺塔

    在这个程序中,用户可能需要一个文本框输入盘子数量,一个按钮启动程序,以及若干标签显示游戏状态。 2. **事件处理**: VB中的事件驱动编程使得程序能响应用户的操作。例如,当用户点击“开始”按钮时,会触发一...

    jar包反编译阅读器,简单版(只可看单个文件)

    2. 打开JD-GUI:启动应用程序后,你会看到一个简洁的界面。 3. 加载jar文件:点击界面上的“Open”按钮,选择你要查看的jar文件。 4. 浏览源代码:JD-GUI会解析jar中的.class文件并显示相应的Java源代码。你可以通过...

    不重复运行程序.e.rar

    这个压缩包可能包含一个程序或脚本,其设计目的是确保在任何时刻,只有单个实例的该程序处于活动状态。这样的功能在某些情况下非常有用,比如避免资源冲突、保证数据一致性或防止意外的操作。 描述中连续出现了六次...

    04747 Java程序设计(一) 自考 考点 大纲(自己总结)

    - **布尔类型**:`boolean`类型只能取值`true`或`false`。 - **字符类型**:`char`类型用于存储单个字符。 - **整数类型**: - `byte`:8位带符号整数。 - `short`:16位带符号整数。 - `int`:32位带符号整数。 ...

    python记录程序运行时间的三种方法

    - 在多核处理器环境下,`clock()`函数可能无法提供准确的时间记录,因为如果程序被分配到了多个核心上执行,则该函数只能记录单个核心的CPU时间。 - Python 3.3之后,`time.clock()`被弃用,建议使用`time.perf_...

    用FDISK分区 1..用软盘启动。

    主分区是硬盘上可以直接启动操作系统的分区,通常只能创建最多四个主分区。当需要更多分区时,DOS和FAT系统引入了扩展分区的概念。扩展分区本身不能存储数据,但可以在其内部创建多个逻辑分区。这些逻辑分区可以多达...

    强大的卸载工具,同时卸载多个程序

    在技术层面,多线程是指在单个程序中能够同时运行多个线程,每个线程可以处理不同的任务,或者执行相同任务的不同部分。应用于卸载工具中,这一技术使得卸载过程能够并行处理多个程序,极大地提升了卸载效率。当用户...

Global site tag (gtag.js) - Google Analytics