.net c#开发的window应用程序,如何使其只运行一个

linger_liang 2010-04-06 03:45:58
.net c#开发的window应用程序,如何使其只运行一个,就是说我运行这个程序后,再运行一次,这时候程序可以判断已经有一个程序在运行了,然后把之前运行的程序关掉,再运行程序,不知道我说清楚了没有
比如a.exe
双击a.exe,一运行就先判断有没有a.exe在运行如果有就把正在运行的a.exe关掉,然后再运行新的a.exe
...全文
167 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfieldzf 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lpingz 的回复:]

用互斥实现。
using System.Threading;

static void Main()
{
Mutex m_Mutex = new Mutex(false, "Mutex_Name");
bool opened = false;
opened = m_Mutex.WaitOne(TimeSpan.Zero, false);……
[/Quote]

学习
mjay0210 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lpingz 的回复:]

用互斥实现。
using System.Threading;

static void Main()
{
Mutex m_Mutex = new Mutex(false, "Mutex_Name");
bool opened = false;
opened = m_Mutex.WaitOne(TimeSpan.Zero, false);……
[/Quote]

正解!
缭绕飘渺 2010-04-06
  • 打赏
  • 举报
回复
直接判断进程就好了吧
心晴Sunheart 2010-04-06
  • 打赏
  • 举报
回复
用Mutex互斥体判断是否已经打开,用进程名称获取已经打开进程
KissXYL 2010-04-06
  • 打赏
  • 举报
回复
都不完整,因为系统运行的缘故,可能你会并发的执行2个程序,最好还是楼上各位方法使用的同时,增加定时检查,关闭功能。否则还是会偶尔的出现双开。
huiming_zhou 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lpingz 的回复:]

C# code

using System.Threading;

static void Main()
{
Mutex m_Mutex = new Mutex(false, "Mutex_Name");
bool opened = false;
opened = m_Mutex.WaitOne(TimeSpan.Zero, false);
if (!opened)
{
……
[/Quote]

赞!!!!!!!!!!!
lpingz 2010-04-06
  • 打赏
  • 举报
回复

using System.Threading;

static void Main()
{
Mutex m_Mutex = new Mutex(false, "Mutex_Name");
bool opened = false;
opened = m_Mutex.WaitOne(TimeSpan.Zero, false);
if (!opened)
{
MessageBox.Show("任务提醒程序已在运行!");
return;
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

lpingz 2010-04-06
  • 打赏
  • 举报
回复

用互斥实现。
using System.Threading;

static void Main()
{
Mutex m_Mutex = new Mutex(false, "Mutex_Name");
bool opened = false;
opened = m_Mutex.WaitOne(TimeSpan.Zero, false);
if (!opened)
{
MessageBox.Show("任务提醒程序已在运行!");
return;
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
不懂装懂 2010-04-06
  • 打赏
  • 举报
回复
判定版本号,杀死进程

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧