zoukankan      html  css  js  c++  java
  • C#写进程守护程序

    最近写了好多次进程守护程序,今天在这里总结一下。
    用到的知识点:

                       1、在程序中启动进程,

                       2、写Windows服务,

                       3、以及在Windows服务中启动带界面的程序


    关于第三点的问题,我在我的上一篇博客单独介绍了解决方案:C#做服务使用Process启动外部程序没有界面 

    这里主要讲述怎样用C#做一个服务这个服务可以监视某个进程,如果进程不存在则启动这个进程(还可以通过让监视程序和进程守护服务定期交换数据的方法来更准确的进行监测)


    新建Windows服务项目



    实现服务要执行的操作


    查看services代码,在对应位置写入要执行的代码:


    protected override void OnStart(string[] args)
           {
               //服务开启执行代码
           }
           protected override void OnStop()
           {
               //服务结束执行代码
           }
           protected override void OnPause()
           {
               //服务暂停执行代码
               base.OnPause();
           }
           protected override void OnContinue()
           {
               //服务恢复执行代码
               base.OnContinue();
           }
           protected override void OnShutdown()
           {
               //系统即将关闭执行代码
               base.OnShutdown();
           }

    添加安装程序

    1、在services的设计界面右键,选择添加安装程序:


    生成serviceInstaller1和 serviceProcessInstaller1两个组件 。


    2、把serviceInstaller1的属性ServiceName改写为你的服务程序名,并把启动模式设置为AUTOMATIC 


    3、把serviceProcessInstaller1的属性account改写为 LocalSystem


    4、最后通过从生成菜单中选择生成来生成项目

    安装卸载Windows服务

    如果你在你需要的函数里面写过你需要的方法后,直接点运行是不可运行的。


    1、安装Windows服务

    安装命令:InstallUtil.exe MyServiceLog.exe

    InstallUtil存在路径为:C:WINDOWSMicrosoft.NETFramework.NET版本号

    复制C:WINDOWSMicrosoft.NetFramework版本号  路径中的InstallUtil.exe 到bin/debug或bin/release文件夹中

    在命令行窗口中(管理员权限打开),cd到服务Debug目录下运行安装命令,安装过程如下图所示:

    安装成功之后手动启动服务:

    2、卸载window 服务

    命令:InstallUtil.exe MyServiceLog.exe /u

    如果修改这个服务,但是路径没有变化的话是不需要重新注册服务的,直接停止服务,然后用新的文件覆盖原来的文件即可,如果路径发生变化,应该先卸载这个服务,然后重新安装这个服务。



  • 相关阅读:
    XP系统开机慢和减少开机滚动条的解决方法
    细说A标签的样式
    【部分转载】安装MySQL,visual studio tools for office 2010 runtime通不过
    将GB2312转码成UTF8
    ubuntu/vmware 拷贝后网路不通
    bash manual
    跟我一起写 Makefile
    我的vi 启动配置文件
    ubuntu安装samba
    upnp
  • 原文地址:https://www.cnblogs.com/haxianhe/p/9271071.html
Copyright © 2011-2022 走看看