进程监控程序的开发(程序运行监控)

很多应用程序是需要7*24小时运行的,不知道那个家伙不小心就把你要定时执行的程序关闭了,而且你是运行在右下角任务栏的,不注意根本就不知道被关闭。我有过这样的经历,写了一个hqms接口程序,就是要定时推送病案数据的,在测试阶段,数据要连续上传十天才可以获取正式环境的账号,有同事竟然关了我的程序,并且没有重启,害我迟了几天获取正式账号。
我的监控进程的程序很简单,就是启动程序的时候,只在任务管理器中的进程列表中看到程序,不在任务栏上显示,代码如下:

            this.WindowState = FormWindowState.Normal;
            this.WindowState = FormWindowState.Minimized;
            this.ShowInTaskbar = false;

使用定时器,及时查看要监控的程序,如下代码所示:

        private bool isRunning = false;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (isRunning) return;

            isRunning = true;

            Process[] ps = Process.GetProcessesByName(executeName);

            if (ps.Length > 1)
            {
                int count = ps.Length;
                foreach (Process p in ps)
                {
                    count--;
                    p.Kill();
                    if (count == 1) break;
                }
            }
            else if (ps.Length == 0)
            {
                Process.Start(executeName + ".exe");
                WriteLogs("启动" + executeName + ".exe");
            }

            isRunning = false;
        }

监控的进程要写在配置文件里面,如下所示:

<?xml version="1.0" encoding="GB2312"?>
<Items>
  <ExecuteName>HqmsJob</ExecuteName>
</Items>

在启动监控程序的时候,就读出要监控的进程,然后定时器会定时读取进程的执行情况,如果出现两个的时候就会自动关闭一个,假如没有开启的时候,就启动,如下所示:

Process.Start(executeName + ".exe");

请查看具体源代码
http://download.csdn.net/detail/panliuwen/9131799

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

panliuwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值