|
本帖最后由 9zhmke 于 2025-7-27 11:04 编辑
初步准备这样写,请多指教:
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. 重复上述循环
5辅助功能支持
提供字符串处理函数(去除空格、转换格式等)
提供日志记录功能(含时间戳)
提供服务控制功能(启动 / 停止服务)
提供文件 / 文件夹删除功能(支持递归删除)
提供环境变量扩展功能
提供计时功能(记录操作耗时)
提供网络适配器控制功能(启用 / 禁用网卡) |
|