讲啥
说完题外话,本文是在制作tc命令快搜执行工具的时候遇到的问题:想要在ini修改后自动重启应用
引申出了许多想要实现的对ini脚本的备份,修改监控等需求,我发现ra其实都实现了这些功能,所以本文重点介绍从ra中提取的备份,监控ini修改的方法和函数,并教大家如果修改应用于自己的脚本,
备份配置文件函数
RunABackup(RunABackupDir,RunABackupFile,RunABackupFileContent,RunABackupFileCopy,RunABackupFileTarget){
ConfigBackupNum:=0
ConfigBackupFlag:=true
Loop,%RunABackupDir%%RunABackupFile%
{
FileRead, iniVarBak, %A_LoopFileFullPath%
if(RunABackupFileContent=iniVarBak){
ConfigBackupFlag:=false
}
ConfigBackupNum++
}
if(ConfigBackupFlag){
FileCopy, %RunABackupFileCopy%, %RunABackupDir%%RunABackupFileTarget%, 1
}
if(ConfigBackupNum>RunABackupMax){
RunABackupClear(RunABackupDir,RunABackupFile)
}
}
首先看一个调用的例子
函数是备份ra的,第一个参数是文件夹路径,第二个是文件名,第三个参数是对ini内容的判断如果false才进入后面的判断,第四个参数是原ini的路径,后面的参数其实就是对复制的文件的判断了
所以设计备份函数最根本的函数就是filecopy这个命令,以此为基础,进行内容判断,就可以完成配置的备份了
自动根据ini配置的修改重启脚本
AutoReloadMTime:
RegRead, MTimeIniPathReg, HKEY_CURRENT_USER\Software\RunAny, %iniPath%
FileGetTime,MTimeIniPath, %iniPath%, M ; 获取修改时间.
if(MTimeIniPathReg!=MTimeIniPath){
Gosub,Menu_Reload
}
if(MENU2FLAG){
RegRead, MTimeIniPath2Reg, HKEY_CURRENT_USER\Software\RunAny, %iniPath2%
FileGetTime,MTimeIniPath2, %iniPath2%, M ; 获取修改时间.
if(MTimeIniPath2!=MTimeIniPath2Reg){
Gosub,Menu_Reload
}
}
return
这是ra的使用函数,实际上我们自己使用的时候更加简单,只需要读取文件的修改时间,写入ini配置文件中,计时器读取时间和文件最后修改时间进行对比就可以了,无须使用注册表