关于 程序 调用 关闭
A为主程序 B为更新程序
目标:
A运行监测到更新,运行B。。
B运行 关闭A,运行结束后 调用A
问题:
B运行 没有关闭A
代码 :
A检测:
private void Login_Load(object sender, EventArgs e)
{
//检查是否有
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("StationKQ");
if (p.Length > 1)
{
MessageBox.Show("应用程序已经启动");
this.Close();
Dispose();
return;
}
}
A调用:
if (dr == DialogResult.OK)
{
this.Hide();
System.Diagnostics.Process p = System.Diagnostics.Process.Start(Application.StartupPath + "\\" + "auto.exe");//notepad");
MessageBox.Show("更新完成");
B关闭A:
this.label1.Text = "正在关闭程序进程....";
System.Diagnostics.Process[]proc=System.Diagnostics.Process.GetProcessesByName(exe);
//关闭原有应用程序的所有进程
foreach(System.Diagnostics.Process pro in proc)
{
pro.Kill();
}
结果 显示
“更新成功!”
“程序已经启动”-----这个说明之前的我没有关闭吧?
------解决方案--------------------没错,你没有关闭,因为你的一句MessageBox.Show("更新完成");阻止了它的关闭,你为什么不考虑直接自己关闭,既然检测出了需要更新,在调用更新程序之后自己退出进程不就完事了吗?
------解决方案--------------------if (dr == DialogResult.OK)
{
System.Diagnostics.Process p = System.Diagnostics.Process.Start(Application.StartupPath + "\\" + "auto.exe");//notepad"); &nb