检测程序是否运行
定时检测程序是否运行
之前项目有需求,在户外一体机上运行各类的交互游戏。因为一体机屏幕本身是支持触摸的,而且使用用户又比较多,所以经常会出现程序退出,被用来播放电影视频等其他内容。
想过一些思路,比如程序加上心跳跟公司服务器做检测等,但是还是相对比较麻烦,后来就想了一个简单的办法,用windows的定时任务+bat脚本来进行检测,具体思路如下:
1、bat脚本检测程序是否运行
- 新建命名为Monitor的.txt文件,然后将后缀改成.bat的脚本;
- 脚本就一行代码:
tasklist | find /i "程序的名字" && echo "IS Running" || start /d "程序的路径" 程序的名字
根据程序的名称查找对应的进程,如果的有的话,执行输出打印IS Runing;如果没有的话,执行后面的语句,即打开该程序;
#例如:
tasklist | find /i "WeChat.exe" && echo "IS Running" || start /d "D:\Software\WeChat\" WeChat.exe
#如果想暂停的话也可以加入下面的代码
#pause
注意:
- 这里的名字跟程序本身的名称会有一定出入,一定要在任务管理器里面找到对应的进程名称;
- 文件的路径参考下图;
2、定时任务里面添加该脚本
- 在开始菜单里面搜索任务计划程序;
- 创建基本任务->填写名称/描述->触发器/当前用户登录时->操作/启动程序->添加刚才写好的脚本->点击完成;
- 设置脚本执行时间:双击刚才创建好的任务,然后点击触发器->编辑->设置任务的重复时间;
综上,就完成了电脑开机后,每小时(时间长短可自行调整)执行一次脚本,如果程序运行就无操作,程序没有运行就打开对应的程序。