WinForm限制客户程序只能运行一个实例

WinForm限制客户程序只能运行一个实例;

using System;
using System.Threading;

static void Main()
{
      bool create = false;
      using (Mutex mu = new Mutex(true, Application.ProductName, out create))
      {
                if (create)
                {
                   Application.Run( new MainForm() );
                }
                else
                {
                    MessageBox.Show("程序已经在运行,请不要重复打开!");
                    Application.Exit();
                }
       }
}

希望以上分享对初学朋友有些帮助,谢谢!
更多关注付义方技术博客:http://blog.csdn.net/fuyifang
或者直接用手机扫描二维码查看更多博文:

时间: 2025-01-28 17:44:26

WinForm限制客户程序只能运行一个实例的相关文章

实现只能运行一个实例,当第二次双击程序运行时把第一个激活并传递参数进去

问题描述 using Microsoft.VisualBasic.ApplicationServices; staticvoidMain(string[]args) { AppmyApp=newApp(); myApp.Run(args); } classApp:WindowsFormsApplicationBase { publicApp() { //设置单例模式 this.IsSingleInstance=true; //设置可用于XP窗口样式 this.EnableVisualStyles

如何让VC和Delphi程序只运行一个实例

有些时候,我们需要我们的程序只运行一个实例,笔者自己作程序也有这样的情况,于是自已探究一番.忙活一阵后,总算小有收获,不敢独享,在天极发表出来,供大家参考. 既然是从根本上解决问题,对于Windows程序而言,就从WinMain函数入口,这是因为在VC中使用SDK的方式编写程序最透明,并且WinMain是作为VC编译器生成EXE文件的默认入口函数. WinMain的函数原型: int WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, L

如何使应用程序只运行一个实例

要使应用程序只运行一个实例,一个简单的方法是在应用程序类中使用互斥量,这可以用VC下的GUIDGEN.EXE程序产生.GUIDGEN.EXE位于VC安装目录CommonTools目录下 实例 1: 新建一基于对话框的工程ex1,采用默认设置 2: 用GUIDGEN.EXE产生一个全局标志,#define one "产生的全局标志" 本例中产生的语句如下:#define one "0xbe8e2ce1, 0xdab6, 0x11d6, 0xad, 0xd0, 0x0, 0xe0

让C#程序只运行一个实例,显示已经运行的界面

让程序只运行一个实例的方法一: static void Main()         {             System.Threading.Mutex mutex;             bool isNew;             mutex = new System.Threading.Mutex(true, "myproject", out isNew);             if (isNew)             {                 App

QT中实现程序只运行一个实例--应用程序的单例化

起因 最近想实现一个应用程序单例化的程序, 目前使QT运行一个实例有如下几种方式 1.QSharedMemory 使用共享内存,当第二个进程启动时,判断内存区数据是否建立,如有,则退出; 这种方式有弊端,在程序发生崩溃时,未及时清除共享区数据,导致程序不能正常启动. 2.文件锁 在程序运行的时候就在目录下创建一个文件,当程序运行时就判断这个文件是否存在,如果存在说明程序已经在运行.其本质与QSharedMemory相同 3.利用QLocalServer 参照 Qt实现应用程序单实例运行–Loca

程序只运行一个实例,并激活前一个实例

示例代码运行效果图如下: 实现程序只运行一次的方法很多,但是原理都是一样的,就是运行第一次的时候设置一个标记,每次运行的时候检查该标记,如果有就说明已经运行了. 具体实现: 1.在程序初始化的时候 (InitInstance()) 枚举所有的窗口,查找本程序的实例是否存在 2.在主窗口初始化的时候在本窗口的属性列表中添加一个标记,以便程序查找. 部分关键代码 1.在App的InitInstance()中枚举所有窗口,查找本程序实例 HWND oldHWnd = NULL; EnumWindows

Python实现保证只能运行一个脚本实例

  这篇文章主要介绍了Python实现保证只能运行一个脚本实例,本文直接给出实现代码,需要的朋友可以参考下 保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑. 使用装饰器实现,便于重用 代码如下: import functools def just_one_instance(func): ''' 装饰器 如果已经有实例在跑则退出 复制代码 代码如下: :return: ''' @functools.wraps(func) def f(*args,**kwa

方法-C#智能设备应用程序怎么实现只能打开一个实例

问题描述 C#智能设备应用程序怎么实现只能打开一个实例 C#智能设备应用程序怎么实现只能打开一个实例 ,试过mutex方法不行,只能设备应用程序只有默认的构造函数和含有一个参数的构造函数 解决方案 在Main里面写int i = 0;foreach (Process p in Process.GetProcesses()){ if (p.Name == Process.Current.Name) i++;}if (i > 1) return;... 你的代码 解决方案二: mutex 确定是可以

同一个PC只能运行一个应用实例(考虑多个用户会话情况)

原文:同一个PC只能运行一个应用实例(考虑多个用户会话情况) 1 class Program 2 { 3 private static Mutex m; 4 5 [STAThread] 6 static void Main() 7 { 8 bool createNew = false; 9 10 /* 11 * 在运行终端服务的服务器上,已命名的系统 mutex 可以具有两级可见性. 12 * 如果名称以前缀"Global\"开头,则 mutex 在所有终端服务器会话中均为可见. 13