修改自动重启后程序的相关属性

水晶圣教士 2009-08-05 12:00:47
修改自动重启后程序的相关属性
我在程序中使用代码判断,当程序错误达到一定数量,则程序自动重新启动,我想修改自动重启后的一些属性,怎么做?

比如:程序第一次运行时,我显示labelYes,当程序自动重启后,我让labelYes.Visible = false而让labelNo.Visible = ture,这个可以实现吗?要怎么做?谢谢^_^


################现有代码如下:################
private void btnOK_Click(object sender, EventArgs e)
{
//判断程序如果出错3次以上则重启
if (errorTime > 3)
{

this.Close(); //关闭
System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location); //重启
}
errorTime = errorTime + 1;
}

private void FormMain_Load(object sender, EventArgs e)
{
lblYes.Visible = true;
lblNo.Visible = false;
}
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
水晶圣教士 2010-01-04
  • 打赏
  • 举报
回复
谢谢大家,后来我直接在本次进程中处理了,重启后就恢复成新的,重新计算。

zgke:你的回答应该是这个解决这个问题的必要途径。
kangnixi:你的方法我试了下还是没成功,可能是我没把你的代码实现对,呵呵。
最后想了下,要实现这样的内容,把数据进行持久化,存注册表或者存个配置文件应该更好解决。
以后再继续研究下,先结帖了,呵呵^_^
水晶圣教士 2009-08-05
  • 打赏
  • 举报
回复
errorTime只是在当前程序中进行判断。
zgke 2009-08-05
  • 打赏
  • 举报
回复
如果你通过 System.Diagnostics.Process.Start 可以考虑使用参数

System.Diagnostics.Process.Start("进程名", "参数");


在程序的Main()方法修改 为Main(string[] args)
参数在args里..
kangnixi 2009-08-05
  • 打赏
  • 举报
回复
问个问题,errorTime是楼主自己定义的一个变量吗?

我很纳闷,如果是你自己定义了,程序关闭后,这个变量的值就会被清空呀

清空了你怎么做if(errorTime>3)的判断

还是我的理解有问题?
kangnixi 2009-08-05
  • 打赏
  • 举报
回复
可以qq交流

我的qq:164184837
kangnixi 2009-08-05
  • 打赏
  • 举报
回复
搞定了,楼主,但是,我觉得这样做有一定的危险性,有很多地方需要优化的,但是我也是半懂半不懂的

欢迎大侠指定出我的错误,代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace auto
{
public partial class Form1 : Form
{

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]

static int Main(string[] args)
{
if (args.Length == 0)
{
temp = 0;
}
else
{
if (args.Length == 1)
{
temp = 1;
}
}
Application.Run(new Form1());
return 0;
}
static int temp;
ProcessStartInfo startInfo = new ProcessStartInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
public Form1()
{
InitializeComponent();
}
private int errorTime = 0;
private void btnOK_Click(object sender, EventArgs e)
{
//判断程序如果出错3次以上则重启
if (errorTime > 3)
{
this.Close(); //关闭
startInfo.Arguments = "1";
Process.Start(startInfo);
}
errorTime ++;
}
private void Form1_Load(object sender, EventArgs e)
{
if ( temp== 0)
{
lblYes.Visible = false;
lblNo.Visible = true;
}
if ( temp== 1)
{
lblYes.Visible = true;
lblNo.Visible = false;
}
}
}
}

110,580

社区成员

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

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

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