C#中防止程序多次运行

C#中如何防止程序多次运行?只要在程序入口点函数Main()中的开始部分添加如注释部分的代码,就能快捷实现。

示例代码如下:

using System;

using System.Collections.Generic;

using System.Windows.Forms;

namespace WindowsApplication1

{

static class Program

{

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

//防止程序多次运行的代码

string MName = System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName;

string PName = System.IO.Path.GetFileNameWithoutExtension(MName);

System.Diagnostics.Process[] myProcess = System.Diagnostics.Process.GetProcessesByName(PName);

if (myProcess.Length > 1)

{

MessageBox.Show("本程序一次只能运行一个实例!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

}

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

时间: 2024-10-05 02:02:21

C#中防止程序多次运行的相关文章

解决vc2010中C程序调试,运行窗口一闪而过问题

最近上大一的表弟向我请教C程序的问题.为了方便自己先测试一下C程序,我从他那得到了VC2010的安装包,拿来安装在自己的电脑上. 写了个简单的hello World,满心期待地等着出结果.什么情况?运行结果的窗口一闪而过.第一次用这个VC2010工具,甚是奇怪,便微信问表弟是否遇到这个情况.  结果是人家正常使用,不明白我这是什么个情况.于是,我就去找了度娘. 功夫不负有心人,我找到了解决办法,尝试了一下可行.这里给大家分享一下,原文地址.我用的是下图红圈的解决方案. 在这里,我放上自己电脑操作

【转】Linux下nohup命令实现退出终端后程序继续后台运行

Unix/Linux下一般想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行:但如果要想在退出终端后,程序依然还在后台运行,则要用nohup与&组合来实现. nohup 命令 用途:不挂断地运行命令 语法:nohup Command [ Arg ... ] [& ] 描述:nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号.在注销后使用 nohup 命令运行后台中的程序:要运行后台中的 nohup 命令,需要添

linux下,一个运行中的程序,究竟占用了多少内存

1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存. 虚拟内存可以不用考虑,它并不占用实际物理内存. (2). top 命令也可以 其中  VIRT(或VSS)列  表示,程序占用了多少虚拟内存. 同 ps aux 中的 VSZ列 RES列 表示, 程序占用了多少物理内存.同 ps aux 中的RSS列 2.在linux下, 查看当前系统占用

在linux下,查看一个运行中的程序, 占用了多少内存

1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存. 虚拟内存可以不用考虑,它并不占用实际物理内存. (2). top 命令也可以 其中  VIRT(或VSS)列  表示,程序占用了多少虚拟内存. 同 ps aux 中的 VSZ列 RES列 表示, 程序占用了多少物理内存.同 ps aux 中的RSS列 2.在linux下, 查看当前系统占用

C#中WinForm程序退出方法技巧总结(转)

本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退

.NET概念:.NET程序编译和运行

.NET概念:.NET程序编译和运行 分类: c#程序设计 2012-02-29 15:46 3001人阅读 评论(2) 收藏 举报 .net编译器语言microsoftassemblyvb.net 程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行. 下图为传统代码编译运行过程: .NET的编译和运行过程与之类似,首先编写好的源代码,然后编译为微软中间语言代码,运行的时候即时编译为本地机器语言,同时.NET代码运行时有一个CLR环境来

C语言学习笔记之第一个C程序及编译运行(一)

一.第一个C程序 1>C程序由函数构成 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”.所以,你可以说C语言程序是由函数构成的. 2>C程序的入口 C程序的入口是一个名字叫做main的函数,简称main函数.(为了区分函数,每一个函数都有一个名称)也就是说,不管整个程序中有多少个函数,都是先执行main函数.不管main函数写在文件中间,还是文件末尾,也都是先执行main函数. 注意: 如果一个C程序中没有main函数,那么

在Eclipse中配置Tomcat 创建和运行Servlet/JSP

在Eclipse中配置Tomcat 创建和运行Servlet/JSP 步骤一:在Eclipse中配置Tomcat(注意下载Eclipse IDE for Java EE Developers) (1)在Eclipse中配置Tomcat.选择Window→Preferences命令,在打开的对话框左边列表框中选择Server节点中的Runtime Environments.单击窗口右侧的Add按钮,打开New Server Runtime Environmen对话框,在该对话框中可选择服务器的类型

C#防止程序多次运行

经过我的测试,还比较好用,但是有个问题,如果不注销,用另一个用户进入,则程序不能判断出已运行.所以只限于用在单用户环境,还是不太完美. class Program { [STAThread] static void Main(string[] args) { //防止程序多次运行 if (!OneInstance.IsFirst("MyTest")) { Console.WriteLine("警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏找到!");