让程序只能运行一个实例

原创 2006年05月17日 23:23:00

新建一个Form1

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;

namespace 程序互斥_运行一次_
{
 /// <summary>
 /// Form1 的摘要说明。
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
  private System.Windows.Forms.Label label1;
  /// <summary>
  /// 必需的设计器变量。
  /// </summary>
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows 窗体设计器生成的代码
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
   this.label1 = new System.Windows.Forms.Label();
   this.SuspendLayout();
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(8, 8);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(152, 23);
   this.label1.TabIndex = 0;
   this.label1.Text = "看看还能再打开一次吗?";
   this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(168, 30);
   this.Controls.Add(this.label1);
   this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   this.MaximizeBox = false;
   this.MaximumSize = new System.Drawing.Size(176, 64);
   this.MinimizeBox = false;
   this.MinimumSize = new System.Drawing.Size(176, 64);
   this.Name = "Form1";
   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
   this.Text = "程序互斥";
   this.Load += new System.EventHandler(this.Form1_Load);
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main()
  {
   //注意位置 不是在Form_Load中
   bool createdNew;
   Mutex m=new Mutex(true,"test",out createdNew);
   if(createdNew)
   {
    Application.Run(new Form1());
    m.ReleaseMutex();
   }
   else
   {
    MessageBox.Show("Only Once !!");
   }
  }

  private void Form1_Load(object sender, System.EventArgs e)
  {
  
  }

 }
}

C#程序只允许运行一个实例的解决方案

C#程序只允许运行一个实例的解决方案 Posted on 2010-03-15 16:29 Charles Chen 阅读(5068) 评论(13) 编辑 收藏      最近在做winform的...
  • lphbtm
  • lphbtm
  • 2016年08月10日 15:47
  • 1069

应用程序每次只能运行一个实例(C#)

有时根据实际需要可能希望应用程序每次只有一个实例在运行,当再次点击同一个应用程序的可执行文件时并不生成一个新的实例,而是将相应的用户界面激活,显示在屏幕最前面。要解决这个问题主要是考虑如何判断应用程序...
  • CNHK1225
  • CNHK1225
  • 2015年01月14日 12:31
  • 889

Qt只能运行一个实例的3种方法

转自 http://blog.csdn.net/robertkun/article/details/8518576 1. 共享内存的方法 Unix: QSharedMemory "owns" the ...
  • u010855021
  • u010855021
  • 2016年07月19日 23:37
  • 2823

解决C#程序只允许运行一个实例的几种方法详解

方法一:使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例. 把program.cs文件里的Main()函数改为如下代码:using System; using System.Windows.F...
  • jiangdefu
  • jiangdefu
  • 2016年08月12日 09:42
  • 2184

使程序只能运行一个实例

1,目标 使我们的程序只能有一个正在运行的实例。 并且在第二次运行时,若前一个实例主窗口处于最小化状态,就让前一个实例恢复原大小显示出来。 2. 原理 前一实例进程运行期间得留下一...
  • jiangqin115
  • jiangqin115
  • 2015年09月29日 15:03
  • 460

使程序只能运行一个实例

1,目标 使我们的程序只能有一个正在运行的实例。 并且在第二次运行时,若前一个实例主窗口处于最小化状态,就让前一个实例恢复原大小显示出来。 2,原理 前一实例进程运行期间得留下一个可供后一实例...
  • dpsying
  • dpsying
  • 2013年12月10日 16:03
  • 843

WPF 只允许打开一个实例

我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开。 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭。也就是是否存在另一个程序在运行。...
  • lindexi_gd
  • lindexi_gd
  • 2016年12月29日 09:28
  • 1717

使Qt 程序只能运行一个实例的3种方法

1. 共享内存的方法 Unix: QSharedMemory "owns" the shared memory segment. When the last thread or process th...
  • robertkun
  • robertkun
  • 2013年01月18日 21:41
  • 7116

linux下c/c++实例之三只允许单个程序运行

一、简介       Linux下允许本程序只运行一次,以防止对共享数据的破坏。linux各个版本下的检测程序都不相同,但思想相同,可以重复使用。 二、详解 1、Centos下的单程...
  • taiyang1987912
  • taiyang1987912
  • 2015年11月05日 18:50
  • 2885

delphi 只允许运行一个实例的三种方法转

让程序只运行一个实例 Windows 下一个典型的特征就是多任务,我们可以同时打开多个窗口进行操作,也可以同时运行程序的多个实例,比如可以打开许多个资源管理器进行文件的移动复制操作。但有时出于某...
  • u013408061
  • u013408061
  • 2017年06月05日 13:39
  • 359
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让程序只能运行一个实例
举报原因:
原因补充:

(最多只允许输入30个字)