问题提出:自己做了一个升级程序,原理是这样的,升级程序不能单独双击运行,必须在主程序中检测如果有更新版本后才能打开升级程序,单独运行升级程序的话就应该报错,然后关闭自己。
我是这样实现的,在升级程序LOAD中检测当前进程中是否有主程序的进程,如果有则继续,如果没有就说明是单独运行的升级程序就关闭自己,比较笨,感觉应该有更好的方法实现,只是初学没找到其他的解决方法,代码如下,大家有好的方法记得和我分享
using System.Diagnostics; //操作进程先加上引用
//检测指定进程是否运行
bool appRuning()
{
//创建进程数组获得当前所有进程
Process[] allProcess = Process.GetProcesses();
//遍历进程查找指定名称的进程
foreach (Process p in allProcess)
{
//通过属性ProcessName获取该进程的名称比较,如果找到则返回真
if (p.ProcessName == "QQ")
{
return true;
}
}
//未找到 返回假
return false;
}
用的时候这样:
//如果方法返回真则继续执行
if (appRuning())
{
//继续执行程序的功能
}
else
{
//弹出消息框报错并关闭自己
MessageBox.Show("不能单独打开更新程序,请从主程序运行!", "错误", MessageBoxButtons.OK,MessageBoxIcon.Error);
Application.Exit();
}