请问怎样实现同一目录下的程序只能运行一个实例,而同一个程序在不同目录下的可以同时运行?
比如有软件A,初始位置在 D:\A文件夹\ 我打开A文件夹下的程序之后,再想打开他就会提示已经在运行
但是我把A复制到B文件夹 D:\B文件夹\ 这时再打开程序时就可以打开了.
比如有软件A,初始位置在 D:\A文件夹\ 我打开A文件夹下的程序之后,再想打开他就会提示已经在运行
但是我把A复制到B文件夹 D:\B文件夹\ 这时再打开程序时就可以打开了.
解决方案 »
- C#能移动吗?【各位c#精英,进来谈谈你的想法吧】
- 求教:C#怎样实现在EXCEL中插入数学编辑器中的特殊字符
- 如何在System.Timers.Timer所触发的事件中设置timer.Enaled,timer.Interval属性?
- WinForm窗体之间的参数传递???
- C# 反射指定类的子类
- 数据库连接报错!求救啊!分不多了只有30
- 请问怎样触发ToolBar上的EnableChange事件?
- C#在图象方面(在使用指针的情况下),是否可取代VC++。
- 关于MailMessage发送邮件
- 用c#来添加、删除计算机本地用户用什么接口?
- C#导数据到excel的问题
- C# 自定义控件属性定义
将带程序路径的程序可执行名当作互斥量名。不过要注意,程序可以在运行的时候在相同盘内移动。
还要麻烦您帮忙看一下 我用了那段代码之后,当试图运行第二个实例时,弹出错误提示框,错误如下.NET-BroadcastEventWindow.2.0.0.0.33c0d9d.0: test.exe - 应用程序错误
"0x10002627"指令引用的"0x00000010"内存。该内存不能为"read"。
要终止程序,请单击“确定”。我的代码如下:[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.AppendPrivatePath("System");
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(Program.CurrentDomain_UnhandledException);
Application.ThreadException += new ThreadExceptionEventHandler(Program.Application_ThreadException);
bool firstInstance;
mutex = new Mutex(true, @"Global\"+myTool.GetMD5Hash(Application.StartupPath), out firstInstance);
try
{
if (firstInstance)
{
Application.Run(new F_Main());
}
}
finally
{
//只有第一个实例获得控制权,因此只有在这种情况下才需要ReleaseMutex,否则会引发异常。
if (firstInstance)
{
mutex.ReleaseMutex();
}
mutex.Close();
mutex = null;
}
}