某些时候需要记录上次运行的数据,比如上次窗口的位置,主要思路:
运行的脚本可以读写自身文件内
然后读写特别标记的注释块就行
ini当然可以,但是有点小洁癖的话,可以玩下以下代码,其实去掉无关的部分代码不算多,编辑器内还能享受注释折叠
这个设置注释块可以放在任何位置,似乎可以用正则优化一下。
如果需求不高,比如只修改脚本第一行的变量内容,代码会更简单。
;脚本文件内自变设置 By 枫丹白露 2018.04.26 /*设置开始 a=1 b=哈 */ FileEncoding, UTF-8 FileRead,oFile,%A_ScriptName% posS:=InStr(oFile,"/*设置开始") posE:=InStr(oFile,"*/",posS) ;设置段之前 oFile1:=SubStr(oFile,1,posS-1) ;设置段 oFile2:=SubStr(oFile,posS,posE-2-posS) ;设置段之后 oFile3:=SubStr(oFile,posE) ;把设置读进关联数组 oCon:={} loop,Parse,oFile2,`n,`r { s:=StrSplit(A_LoopField,"=") oCon[s[1]]:=s[2] } MsgBox, 65, 提示, % oCon.a "次运行,继续么?`r`n" oCon.b IfMsgBox, Cancel Exit ;修改值 oCon.a+=1 oCon.b.="哈" ;保存文件 FileMove,%A_ScriptName%,%A_ScriptName%_old myF:=FileOpen(A_ScriptName,"w") oFile := oFile1 for k,v in oCon { oFile .= v?k "=" v "`r`n" :k "`r`n" } oFile .= oFile3 myF.Write(oFile) myF.Close Reload
❗ 封装之后呢。。。这个设计也是蛮巧妙的!
封装之后只好读写exe可执行文件了(有点类似于fSekrit的单文件设计)(所有设置都在exe文件里,exe到哪里设置就跟到哪里,最讨厌注册表了)。
fSekrit是一款超小的便携式自身加密内容的记事本程序. 1、软件小巧,(最终大小会随你保存内容大小改变),特别适合U盘存储。 2、高强度加密,CBC 模式 256 位 AES,不使用未加密的临时文件。 3、将程序和加密内容合并成单独程序保存,不需任何其他程序。 注:这个东东非常适合于加密保存自己的一些私人和敏感信息
直接修改脚本文本不是喜欢的方式,
不想建文件,可以把信息存注册表,感觉也不错哈,不过换电脑信息会丢失 💡