• 大小: 0.30M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2020-12-26
  • 语言: C#
  • 标签: 进程  

资源简介

1. 下载本实例源码                      

2. 安装注意事项
在配置档中配置你要守护的应用程序,应用程序之间用逗号隔开:
01 <?xml version="1.0" encoding="utf-8" ?>
02 <configuration>
03   <appSettings>
04     <add key="ProcessAddress" value="
05          d:\war3.exe,
06          d:\note.txt,
07          d:\girl.jpg
08     " />
09   </appSettings>
10 </configuration>
该项目是Windows服务,直接打开“CocoWatcher.exe”会报错,如图1所示:

运行该守护程序需安装Windows服务,点击批处理文档“安装.bat”即可,“安装.bat”具体内容如下:
1 "%cd%\InstallUtil.exe" "%cd%\CocoWatcher.exe"
2 net start "CocoWatcher"
3 pause
如果你想卸载该守护程序,点击批处理文档“卸载.bat”,“卸载.bat”具体内容如下:
1 net stop "CocoWatcher"
2 "%cd%\InstallUtil.exe" "%cd%\CocoWatcher.exe"  -u
3 taskkill /f /im CocoWatcher.exe
4 pause
3. 需求分析
用户指定要守护的应用程序(数量不限),该应用程序不仅包括exe可执行文件,还包括诸如jpg、txt等所有能双击打开执行的应用程序。用户设定好要守护的应用程序后,关闭应用程序(包括合法和非法关闭),该应用程序要能立即重启打开。当电脑重启时,要守护的应用程序也能自动全部打开。
4. 详细设计
要实现上述需求,首先要提供一个配置档,让用户能随意配置要守护的应用程序。那么,该配置档要配置应用程序的什么信息呢?答案:应用程序的全路径。
好,我们已经知道了要守护的应用程序的全路径,接下来怎样完成守护任务呢?首先,我们应该打开任务管理器,查看一下正在运行的有哪些进程,然后逐一读取出这些进程的全路径,与要守护的应用程序的全路径比对,如果一致,说明要守护的应用程序已开启了,此时要分配一条线程监控该进程句柄,当该进程句柄返回信息,说明该进程已关闭,此时释放进程句柄内存,并重启该进程。如果遍历任务管理进程列表中所有进程,没有找到与要守护的应用程序的全路径一致的进程,说明要守护的应用程序尚未打开,此时要启动该应用程序,然后转入监控流程。
值得注意的是,一定要额外分配线程去监控要守护的应用程序,为什么?因为如果你用主线程(入口函数线程)去执行监控任务,会被长期阻塞,直到进程退出才会被激活,这样就无法运行后续程序。况且,监控程序要实现持续监控,要使用死循环,如果主线程进入死循环,就无法监控其他要守护的进程了。

资源截图

代码片段和文件信息

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        231  2011-02-12 10:46  CocoWatcher\CocoWatcher\App.config

     文件       8704  2010-12-13 16:52  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.exe

     文件        493  2010-12-13 16:47  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.exe.config

     文件      19168  2010-11-05 18:45  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.InstallLog

     文件      22016  2010-12-13 16:52  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.pdb

     文件      14328  2010-12-13 16:50  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.vshost.exe

     文件        493  2010-12-13 16:47  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.vshost.exe.config

     文件        490  2007-07-21 01:33  CocoWatcher\CocoWatcher\bin\Debug\CocoWatcher.vshost.exe.manifest

     文件     172032  2011-02-12 10:07  CocoWatcher\CocoWatcher\bin\Release\CocoWatcher.exe

     文件        230  2011-02-12 10:06  CocoWatcher\CocoWatcher\bin\Release\CocoWatcher.exe.config

     文件        753  2011-02-12 10:21  CocoWatcher\CocoWatcher\bin\Release\CocoWatcher.InstallLog

     文件      22016  2011-02-12 10:07  CocoWatcher\CocoWatcher\bin\Release\CocoWatcher.pdb

     文件      14328  2011-02-12 09:29  CocoWatcher\CocoWatcher\bin\Release\CocoWatcher.vshost.exe

     文件      28672  2008-07-25 11:17  CocoWatcher\CocoWatcher\bin\Release\InstallUtil.exe

     文件        286  2011-02-12 10:21  CocoWatcher\CocoWatcher\bin\Release\InstallUtil.InstallLog

     文件        114  2011-02-12 09:09  CocoWatcher\CocoWatcher\bin\Release\卸载.bat

     文件         79  2011-02-12 09:03  CocoWatcher\CocoWatcher\bin\Release\安装.bat

     文件     161862  2010-08-26 11:33  CocoWatcher\CocoWatcher\coco.ico

     文件       3770  2011-02-11 17:09  CocoWatcher\CocoWatcher\CocoWatcher.csproj

     文件        168  2011-02-11 17:09  CocoWatcher\CocoWatcher\CocoWatcher.csproj.user

     文件        751  2010-12-13 16:52  CocoWatcher\CocoWatcher\obj\Debug\CocoWatcher.csproj.FileListAbsolute.txt

     文件        845  2010-12-13 16:52  CocoWatcher\CocoWatcher\obj\Debug\CocoWatcher.csproj.GenerateResource.Cache

     文件       8704  2010-12-13 16:52  CocoWatcher\CocoWatcher\obj\Debug\CocoWatcher.exe

     文件      22016  2010-12-13 16:52  CocoWatcher\CocoWatcher\obj\Debug\CocoWatcher.pdb

     文件        180  2010-12-13 16:52  CocoWatcher\CocoWatcher\obj\Debug\CocoWatcher.ProjectInstaller.resources

     文件        180  2010-12-13 16:52  CocoWatcher\CocoWatcher\obj\Debug\CocoWatcher.Watcher.resources

     文件        776  2011-02-12 10:07  CocoWatcher\CocoWatcher\obj\Release\CocoWatcher.csproj.FileListAbsolute.txt

     文件        852  2011-02-12 10:07  CocoWatcher\CocoWatcher\obj\Release\CocoWatcher.csproj.GenerateResource.Cache

     文件     172032  2011-02-12 10:07  CocoWatcher\CocoWatcher\obj\Release\CocoWatcher.exe

     文件      22016  2011-02-12 10:07  CocoWatcher\CocoWatcher\obj\Release\CocoWatcher.pdb

............此处省略33个文件信息

评论

共有 条评论