|
本帖最后由 9zhmke 于 2025-7-29 14:54 编辑
下一版本计划:系统没见过的新程序,托盘图标默认为显示,除非用户自己设置为不显示
20250801 实现主程序不在时,杀进程、删除目录、关链接、根据SorollLock键运行或停止程序
很多程序在运行时,都需要另一些配套程序支持,但这些主程序退出后,有些后台程序并没有退出,比如百度网盘的后台服务、酷我音乐的后台服务、QQ游戏的后台服务,我不确定这些程序是否会占用流量和CPU,只是纯粹心里不舒服。所以想写这个小程序,用户自己在INI文件里配置各种需要处理的程序,以实现以下功能:
1、没有主程序运行时关闭对应后台服务程序
2、没有主程序运行时删除对应文件夹
3、没有主程序运行时关闭对应的网络链接,(这个针对学校机房VM建的的虚拟网卡要影响到网络)
4、用户可自己指定程序扫描的时间间隔,在I5 6500上正常工作每次约63毫秒,我通常设的5秒扫一次,你也可以设成50毫秒一次....
说起来这程序也很简单,但我没找到有这个功能的程序,所以就写了这么一个,先试试再说
先做了个测试版试试,目前不一定能过安全软件,我肯定不会放什么病毒木马了,可以放心使用。但是360之类要报警那也没办法,毕竟这个涉及到删除文件之类操作,我也不愿意花钱去360报备。
下载:
本程序没有界面,运行后只在托盘区有个图标,只能点右键退出。单击图标会暂停,此时就会闪一下盾闪一下红X,取暂停就可以了。
请自行配置ini文件,配置文件修改后必须退出程序重新进入,目前配置如下:
- #井号是注释,请使用单独一行
- #timeout指用于检测的间隔时间
- #Scroll_Lock后面跟的文件名,在Scroll_Lock灯亮后,如果没运行将会被运行,灯灭被关闭
- timeout=5000
- Scroll_Lock=
- #斜杠/用于指定不检测的程序,这些程序往往是系统自有程序,没有必要进行判断
- /textinputhost.exe
- #冒号开头的语句,表示后面跟的都是和这个文件相关的内容,本配置中通称为“主程序”
- :QQGame.exe
- #跟在冒号后面的程序,如果主程序没有运行,而内存中有,将会被关闭
- QQGameService.exe
- #缩进只是为了好看,实际使用中,缩进和空格都被忽略
- qqgameupdate.exe
- qgupd.exe
- qqgamebrowser.exe
- qqgameservicehelper.exe
- wslservice.exe
- :KwMusic.exe
- WriteMbox.exe
- KwKnowSong.exe
- KwWallpaper.exe
- KwService.exe
- KwMusicupdate.exe
- :Adobe Premiere Pro.exe
- #跟在主程序后的路径,将会在主程序没运行时被删除
- d:\Creative Cloud Files
- : vmware.exe
- #中文的“;”、“?”等中文全角前导符,在读取时被校正为英文符号
- #问号开头的句子,后面将被认为是网络连接,主程序不在时会禁用
- ?VMware
- :ig8.exe
- d:\igebaCache
- :BaiduNetdisk.exe
- YunDetectService.exe
复制代码 程序流程大致如下:
1准备工作
加载所需的系统工具库(文件操作、数组处理、字符串处理等)
定义各种变量(日志文件路径、扫描间隔时间、进程列表等)
预设系统进程列表(["[System Process]","System","Registry"])
2启动检查
设定日志文件为同名的 ".txt",默认扫描间隔 5 秒
检查程序是否已运行(通过唯一标识),如果已运行则提示并退出
将工作目录设置为脚本所在目录
查找与脚本同名的 INI 配置文件(如脚本名为 test.au3,则找 test.ini)
如果配置文件不存在或无法打开,提示错误并退出
3读取配置文件
打开 INI 配置文件并逐行读取内容
对每行内容进行处理:
转换为小写并去除首尾空格
若包含环境变量(含 %)则自动扩展
替换中文符号为英文(如:→:、/→/ 等)
解析特殊配置:
若行格式为 "timeout = 值",则更新扫描间隔时间
若行格式为 "scroll_lock = 程序路径",则记录该程序路径
分类处理其他配置行:
行首为 "/":添加到系统进程列表
行首为 "#":视为注释忽略
其他非空行:存入检查规则数组
4进入监控循环
记录循环开始日志
无限重复以下操作:
a. 记录当前时间(用于计算循环耗时)
b. 获取系统进程列表并过滤掉系统进程
c. 查找配置中的主程序(行首为 ":" 的程序)
d. 检查主程序是否在运行:
若主程序未运行:
处理检查规则数组中的其他规则:
含路径的规则:删除对应的文件或文件夹
.exe 程序:若在运行则关闭
行首为 "/":停止对应的服务
行首为 "?":断开指定网络连接
若主程序正在运行:不执行任何操作,仅记录日志
e. 处理 Scroll Lock 键控制:
若 Scroll Lock 灯亮:启动配置的程序(若未运行)
若 Scroll Lock 灯灭:关闭配置的程序(若在运行)
f. 记录本次循环耗时,然后按设定间隔时间休眠
g. 重复上述循环
|
评分
-
查看全部评分
|