资源简介
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所示:
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个文件信息
----------- --------- ---------- ----- ----
文件 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个文件信息
相关资源
- 进程管理器
- 一键隐藏界面(根据进程隐藏)
- TestClose 用VisualStudio2005(C#)实现的进
- C# 关闭进程 KillProcess
- C#做的时间片轮转法和优先数的进程调
- c#进程守护软件-
- 模拟操作系统(C#编写,包括进程管理
- C#实现进程状态转换
- c#共享内存demo-两个进程间通过共享内
- c#编写的操作系统作业--模拟进程调度
- C# DLL 进程注入。
- C# 获取当前所有进程线程CUP占用率
- C# 禁止结束进程,保护进程源代码:
- c# 模拟操作系统 文件管理 内存管理
- C#多进程小
- C#进程守护者
- C# 显示系统中的进程信息(进程ID号、
- 获取某一个进程cpu 占用率
- C# 仿任务管理器 实现了 cpu/内存/进程
- c# 监测进程cpu 占用率 过高则结束进程
- c#进程之间通信c#exe 之间发消息c#exe
- C# 进程管理工具(我爱学习——强制
- C# 进程守护
- C# IPC 之 Socket 进程间通信(TCP方式)
- C# IPC进程间通讯(Remoting)
- C# 不同进程间通讯(SendMessage方式)
- C#编写的小浏览器,文件夹图片批量缩
- C# 禁止多个进程运行并当重複运行时
- C#进程间通信机制-注意修改发送方中
- c#自动启动进程并自动加载关闭winfo
评论
共有 条评论