读书人

生手提问怎样让编译好的exe文件只运

发布时间: 2011-12-17 23:37:33 作者: rapoo

新手提问,怎样让编译好的exe文件只运行一次
c#写好的代码怎样让他只运行一次啊,第二次报错!
请高手们帮写下简单的代码,希望做好注释,谢谢~

[解决办法]
你找的是比较规范的做法了
[解决办法]
Process[] processOnComputer = System.Diagnostics.Process.GetProcessesByName("进程名");
if (processOnComputer.Length > 0)
exe启动起来会有进程,每次判断一下进程,存在了报错,不错在继续。
[解决办法]
C#的mutex好象有问题,在debug里可以正确的限制第2个进程运行,但是在release里是无效的
判断进程名是一个方法
[解决办法]
一个简单的方法是发布exe的时候配合一个valid.txt或者别的名字的文件。程序一启动检查这个文件是不是存在,存在的话就删除文件。。如果不存在,程序就报错退出。因为这个文件只会被删除一次,可以满足LZ的要求吧。
[解决办法]
楼上的 一启动就判断有没有这个文件 没有就直接退出 不会出错的
另外 你意思可能是第一次启动就没有 判断也是那样的

发布的时候肯定跟那个文件一起发布
忘记包含那个文件的话就不是程序的问题了 是人的问题
[解决办法]
一般都是用互斥来解决的
楼主就用你搜到的方法解决吧
[解决办法]
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
string thisProcessName=Process.GetCurrentProcess().ProcessName;
if (Process.GetProcessesByName(thisProcessName).Length > 1)
{
MessageBox.Show("系统程序已在运行,请留意桌面任务栏。", "消息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new tlxForm());
}
}
}

读书人网 >C#

热点推荐