ahk监控配置ini文件以及备份配置的小白教程

讲啥

说完题外话,本文是在制作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)
	}
}

首先看一个调用的例子

RunABackup(RunABackupDirPath "\", RunAnyZz ".ini*", iniVar1, iniPath, RunAnyZz ".ini" RunABackupFormatStr)

函数是备份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配置文件中,计时器读取时间和文件最后修改时间进行对比就可以了,无须使用注册表

 

 

给TA捐赠
共{{data.count}}人
人已捐赠
其他

Kawvin批量拼长图工具V1

2022-9-13 7:13:00

AHKV1

easyini库函数方法详解(1)

2022-9-14 9:14:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
有新私信 私信列表
搜索