LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】Winform 实现每天自动定时重新启动本程序

admin
2024年7月13日 11:55 本文热度 893

定时重启本程序实现方法:

在程序设置中创建三个定时启动时间设置,并保存到ini文件,不需要启动的时间段保存为空即可:

 

ini文件内容,用于保存上面三个重启时间,如果是其他方法保存设置参数,那就用其他方法保存即可:

[AutoStart]

AutoStartTime1=06:00

AutoStartTime2=13:00

AutoStartTime3=22:00

在程序页面上放置一个定时器TimerRestAPP,Enable为True,Interval为60000毫秒,也即1分钟轮询一次:

 

 双击定时器,设置代码:

private static DateTime ThisStartTime = DateTime.Now;      //本次启动时间
private static string AutoStartTime1 { get; set; }            //自动重启时间1
private static string AutoStartTime2 { get; set; }            //自动重启时间2
private static string AutoStartTime3 { get; set; }            //自动重启时间3

/*
此处自行补充获取AutoStartTime1、AutoStartTime2、AutoStartTime3三个值的代码
*/

private void timerResetAPP_Tick(object sender, EventArgs e)

{

    //判断是否需要自动重启本程序

    if (AutoStartTime1 != "" || AutoStartTime2 != "" || AutoStartTime3 != "")

    {

        DateTime temp_time;

        string thisDay = DateTime.Now.ToString("yyyy-MM-dd");

        TimeSpan ts_check_auto_start_1;

        TimeSpan ts_check_auto_start_2;

        int auto_start_flag = 0;

        if (AutoStartTime1 != "" && auto_start_flag == 0)

        {

            temp_time = Convert.ToDateTime($"{thisDay} {AutoStartTime1}:00");

            ts_check_auto_start_1 = DateTime.Now - temp_time;

            ts_check_auto_start_2 = temp_time - ThisStartTime;

            if (ts_check_auto_start_1.TotalSeconds > 0 && ts_check_auto_start_2.TotalSeconds > 0) { auto_start_flag = 1; }

        }

        if (AutoStartTime2 != "" && auto_start_flag == 0)

        {

            temp_time = Convert.ToDateTime($"{thisDay} {AutoStartTime2}:00");

            ts_check_auto_start_1 = DateTime.Now - temp_time;

            ts_check_auto_start_2 = temp_time - ThisStartTime;

            if (ts_check_auto_start_1.TotalSeconds > 0 && ts_check_auto_start_2.TotalSeconds > 0) { auto_start_flag = 1; }

        }

        if (AutoStartTime3 != "" && auto_start_flag == 0)

        {

            temp_time = Convert.ToDateTime($"{thisDay} {AutoStartTime3}:00");

            ts_check_auto_start_1 = DateTime.Now - temp_time;

            ts_check_auto_start_2 = temp_time - ThisStartTime;

            if (ts_check_auto_start_1.TotalSeconds > 0 && ts_check_auto_start_2.TotalSeconds > 0) { auto_start_flag = 1; }

        }

        //自动重启本程序

        if (auto_start_flag == 1) { resetAPP(); }

    }

}


private void resetAPP()

{

    //先隐藏本程序右下角图标(如果有右下角小图标,则需要加上这个隐藏小图标命令,否则不需要下面这行)

    notifyIcon.Visible = false;

    //获取并启动当前进程的可执行文件的完整路径

    StartProcess(Application.ExecutablePath);

    //彻底退出

    Thread.Sleep(100);     //为确保正确执行,延迟100毫秒退出

    Process.GetCurrentProcess().Kill();

    Environment.Exit(0);

}

就可以实现每天自动定时重新启动本程序了。


该文章在 2024/7/13 12:06:15 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved