如何防止一个目录下的程序被启动2次 比如在某目录下的c#程序被用户双击启动并运行后,有些用户习惯不好,可能会再次双击导致同一个目录下2个程序在跑,出现错误,如何防止,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System.Threading;bool CreateStatus = false;Mutex m_Mutex = new Mutex(true, "测试程序",out CreateStatus);if (CreateStatus == false){Console.WriteLine("重复启动");//return;} 在你的program.cs下面namespace xx{ static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { //只允许运行一个实例 string mName = Process.GetCurrentProcess().MainModule.ModuleName; string pName = Path.GetFileNameWithoutExtension(mName); Process[] myProcess = Process.GetProcessesByName(pName); if (myProcess.Length > 1) { MessageBox.Show(Properties.Settings.Default.OnlyOneInstance, Properties.Settings.Default.MessageBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } } }} static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { System.Diagnostics.Process[] pros = System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName); if (pros.Length > 1) { MessageBox.Show("已经启动了一个程序,请先退出!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(0); return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } }如果有问题请一定告诉我,因为我在好几个程序中用它! [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); System.Diagnostics.Process _Process = System.Diagnostics.Process.GetCurrentProcess(); System.Diagnostics.Process[] _ProcessList = System.Diagnostics.Process.GetProcessesByName(_Process.ProcessName); int _ProcessInst = 0; for (int i = 0; i != _ProcessList.Length; i++) { if (_ProcessList[i].MainModule.FileName == _Process.MainModule.FileName) { _ProcessInst++; } } if (_ProcessInst ==1 )Application.Run(new Form2()); }这些写 新人来问,关于hiddenfield的问题!!! c#如何判断datarow的一个字段是否存在 加载控件问题 如何实现一个窗体添加信息,另一个窗体跟着更新. WINFORM中的窗体关闭按纽 急!! C# 数据库有关的安全都有那些啊? aspx 中如何用javascript 调用vb 做的ocx 控件中的方法,up 者又分! 请教:如何在程序中得到虚拟站点的名称? 在自定义控件中使用了自定义集合类,使用这个控件时,在设计器中为集合添加元素不起作用? C# 通过.ini或.txt文件连接sql server 条码扫描问题 - 扫描枪不能识别
namespace xx
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
//只允许运行一个实例
string mName = Process.GetCurrentProcess().MainModule.ModuleName;
string pName = Path.GetFileNameWithoutExtension(mName);
Process[] myProcess = Process.GetProcessesByName(pName);
if (myProcess.Length > 1)
{
MessageBox.Show(Properties.Settings.Default.OnlyOneInstance, Properties.Settings.Default.MessageBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
return;
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
}
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
System.Diagnostics.Process[] pros = System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName);
if (pros.Length > 1)
{
MessageBox.Show("已经启动了一个程序,请先退出!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
Environment.Exit(0);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
如果有问题请一定告诉我,因为我在好几个程序中用它!
static void Main()
{ Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); System.Diagnostics.Process _Process = System.Diagnostics.Process.GetCurrentProcess(); System.Diagnostics.Process[] _ProcessList = System.Diagnostics.Process.GetProcessesByName(_Process.ProcessName); int _ProcessInst = 0; for (int i = 0; i != _ProcessList.Length; i++)
{
if (_ProcessList[i].MainModule.FileName == _Process.MainModule.FileName)
{
_ProcessInst++;
}
} if (_ProcessInst ==1 )Application.Run(new Form2());
}这些写