网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

程序自我重启---实用方法

1.问题或需求描述:
程序自我重启,或在局域网环境下更新重启。

成都创新互联公司专注于网站建设|成都网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都被动防护网等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身制作品质网站。

2.解决方法或原理:
可创建前台或后台 cmd进程,实现程序更新重启。

C#代码:

...
using System.Diagnostics;
using System.IO;
...

private void Restart()
{
    //获得当前程序信息
    Process cur = Process.GetCurrentProcess();
    FileInfo fi = new FileInfo(cur.MainModule.FileName);

    try
    {
        Process subPro = new Process();
        subPro.StartInfo.UseShellExecute = true;
        subPro.StartInfo.FileName = "cmd";
        subPro.StartInfo.Arguments = " /q /c echo 请勿中断,正在重启程序... & ping -n 3 127.1 1>nul 2>nul & taskkill /pid "
            + cur.Id + " 1>nul 2>nul & start \"\" /max \"" 
            + cur.MainModule.FileName + "\"";
        subPro.StartInfo.CreateNoWindow = false;
        subPro.Start();
    }
    catch
    {
            //Add your code
    }
    finally
    {
        Close();
    }
}

private void Update()
{
    try
    {
        //网络程序位置定义
        const string sNetExePath = @"\\192.168.158.25\setup\Test\test.exe";

        //获得当前程序信息
        Process cur = Process.GetCurrentProcess();
        FileInfo fi = new FileInfo(cur.MainModule.FileName);

        //获得网络位置程序信息
        FileInfo fi2 = new FileInfo(sNetExePath);

        //比较文件修改时间戳,如果网络文件较新则更新本地程序并重启
        if (DateTime.Compare(fi2.LastWriteTime, fi.LastWriteTime) > 0)
        {
            try
            {
                Process subPro = new Process();
                subPro.StartInfo.UseShellExecute = true;
                subPro.StartInfo.FileName = "cmd";
                subPro.StartInfo.Arguments = " /q /c echo 请勿中断,正在更新程序... & ping -n 3 127.1 1>nul 2>nul & taskkill /pid " 
                    + cur.Id + " 1>nul 2>nul & copy /y \"" 
                    + sNetExePath + "\" \"" 
                    + cur.MainModule.FileName 
                    + "\" 1>nul 2>nul && start \"\" /max \"" 
                    + cur.MainModule.FileName + "\"";
                subPro.StartInfo.CreateNoWindow = false;
                subPro.Start();
            }
            catch
            {

            }
            finally
            {
                Close();
            }
        }
    }
    catch
    {

    }
}

当前文章:程序自我重启---实用方法
URL标题:http://bjjierui.cn/article/ghgode.html

其他资讯