如何让程序自动关闭再重启

newwyf 2006-07-26 02:52:16
请问如何让Windows程序自动关闭再重启
用C#如何实现
...全文
663 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yellow198267 2006-07-27
  • 打赏
  • 举报
回复
private void button1_Click(object sender, System.EventArgs e)
{
Application.Exit();
System.Diagnostics.Process.Start(@Application.ExecutablePath);
}
newwyf 2006-07-27
  • 打赏
  • 举报
回复
再问一个问题
在关闭多文档窗口应用程序时,点击主窗口关闭按钮要一个一个关闭子窗口,很讨厌
而且我需要提示用户,如何能提示信息而且不让用户看出是一个一个关的

我现在做的程序,有20几个子窗口,点一下只能关闭一个,如果用户要点击主窗口关闭按钮得点20几下,怎么解决
newwyf 2006-07-27
  • 打赏
  • 举报
回复
ljx0305()

你可以查看一下Visual Studio帮助文档 说的很详细

该方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口。该方法并不强制应用程序退出
当调用 Application.Exit 方法以退出应用程序时,不引发 Form.Closed 和 Form.Closing 事件。如果在必须执行的其中一个事件中有验证代码,则在调用 Exit 方法之前,应分别为每个打开的窗体调用 Form.Close 方法。
ljx0305 2006-07-26
  • 打赏
  • 举报
回复
newwyf(小温)
你能说说Application.Exit();
System.Diagnostics.Process.Start(@Application.ExecutablePath
这个代码吗,不是执行exit了吗怎么后边那个句子还可以运行啊
ljx0305 2006-07-26
  • 打赏
  • 举报
回复
newwyf(小温)
你能说说Application.Exit();
System.Diagnostics.Process.Start(@Application.ExecutablePath
这个代码吗,不是执行exit了吗怎么后边那个句子还可以运行啊
ljx0305 2006-07-26
  • 打赏
  • 举报
回复
我支持你 newwyf(小温)
你说的是对的,哈
wuhuiITren 2006-07-26
  • 打赏
  • 举报
回复
我帮你顶下应该没有问题的
newwyf 2006-07-26
  • 打赏
  • 举报
回复
Application.Exit();
System.Diagnostics.Process.Start(@Application.ExecutablePath);

这样是没问题的 程序可以重启
newwyf 2006-07-26
  • 打赏
  • 举报
回复
再问一个问题
在关闭多文档窗口应用程序时,点击主窗口关闭按钮要一个一个关闭子窗口,很讨厌
而且我需要提示用户,如何能提示信息而且不让用户看出是一个一个关的

我现在做的程序,有20几个子窗口,点一下只能关闭一个,如果用户要点击主窗口关闭按钮得点20几下,怎么解决
Cassava 2006-07-26
  • 打赏
  • 举报
回复
必须借助另外一个程序才能实现,就象jack6512006(雨浪)说的一样
jack6512006 2006-07-26
  • 打赏
  • 举报
回复
发错关闭代码了
'杀掉进程
Public Sub killprogress(ByVal progressname As String) '为进程避免冲突,杀死垃圾进程
Dim pProcess() As Process
pProcess = Process.GetProcesses()
Dim i As Integer
For i = 0 To pProcess.Length() - 1
'Console.WriteLine(pProcess(i).ProcessName)
If (pProcess(i).ProcessName = progressname) Then '关闭
pProcess(i).Kill() '关闭进程
End If
Next
End Sub
jack6512006 2006-07-26
  • 打赏
  • 举报
回复
'关闭应用程序
Private Sub closeexe()
If CheckEdit1.Checked Then
If MessageBox.Show("升级程序正要关闭主程序,请确认已经保存了当前数据,按取消将会在一分钟后提示您进行升级。", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.OK Then
PictureBox5.Image = Image.FromFile(down)
killprogress("人力资源管理")
killprogress("updateUI")
Else
runthread.Sleep(60000)
closeexe()
End If
Else
PictureBox5.Image = Image.FromFile(down)
killprogress("人力资源管理")
killprogress("updateUI")
End If
End Sub

这个是vb.net,反正c#差不多,自己去整理
开启程序就用上面那未老兄的
System.Diagnostics .Process .Start (@Application.StartupPath+"\\Your.exe");
jack6512006 2006-07-26
  • 打赏
  • 举报
回复
this.Close ();
System.Diagnostics .Process .Start (@Application.StartupPath+"\\Your.exe");
这个不行的吧
this.Close ();
将关闭所有的消息,以后将不执行

我做的方法是在主程序运行的时候在后台运行一个程序,该程序可做为升级,重新启动主程序什么的,就象QQ那样
使用在后台运行的程序关闭主程序并重新启动主程序
skywind_jk 2006-07-26
  • 打赏
  • 举报
回复
关闭整个程序用Application.Exit()
newwyf 2006-07-26
  • 打赏
  • 举报
回复
我的程序是个多文档窗口
内部是多个线程,关闭先得关闭线程,应该没问题吧
cbgn 2006-07-26
  • 打赏
  • 举报
回复
this.Close ();
System.Diagnostics .Process .Start (@Application.StartupPath+"\\Your.exe");

110,538

社区成员

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

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

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