4个回答
推荐于2018-03-14
展开全部
用mutex就可以了,获取进程名的方法太死板,exe改个名字没就用了
using System;
using System.Threading;
class Program {
static void Main(string[] args)
{
bool f;
Mutex m = new Mutex(true, "xxx", out f);
if(!f) {
Console.WriteLine("不能同时本运行程序两次");
return;
}
Console.WriteLine("启动成功!");
Console.ReadLine();
}
}
using System;
using System.Threading;
class Program {
static void Main(string[] args)
{
bool f;
Mutex m = new Mutex(true, "xxx", out f);
if(!f) {
Console.WriteLine("不能同时本运行程序两次");
return;
}
Console.WriteLine("启动成功!");
Console.ReadLine();
}
}
推荐于2016-09-21
展开全部
Process[] tProcess=Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (tProcess.Length >1)
Application.Exit() ;
else
Application.Run(new Form1());
if (tProcess.Length >1)
Application.Exit() ;
else
Application.Run(new Form1());
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-30
展开全部
在 项目/属性 中把 启动项改成Program.cs然后在 Program.cs 中先引入using System.Diagnostics;然后在Main里写入以下的代码
Process[] tProcess=Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (tProcess.Length >1)
Application.Exit() ;
else
Application.Run(new Form1());
Process[] tProcess=Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (tProcess.Length >1)
Application.Exit() ;
else
Application.Run(new Form1());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-30
展开全部
(*^__^*) 嘻嘻你是想运行程序只能打开一个吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询