这是奔跑的键盘侠的第127篇文章
脚本日志?什么鬼?
初入按键精灵,无非写个简单的模拟键盘鼠标操作,要写个运行日志,记录敲了哪个键盘几下,鼠标左右键各多少下吗?
可以说是,但绝对不只是这么low
很多玩过游戏的小伙伴都知道这么个场景:当游戏里打怪物掉落了各种宝贝,要捡起来,然后包裹满了自动找npc卖掉。
如果手动玩的话还能过滤一下,留下重要物品,其他物品卖掉。
可是,如果是用按键精灵模拟操作了个把小时之后,你回来看看人物状态,虽然有卖掉很到一些钱,但是你打死了几个怪物,捡到什么物品、是否有高级物品,甚至挂机是否有出现异常。一无所知……
于是,衍生出了一个不可或缺的功能,就是代码运行日志
这个跟记叙文六要素:时间地点人物,事情起因经过结果,异曲同工。
1
日志文件N要素
这个要总结还真有点难度,暂且按这两个要素来写吧:时间、事件。
当然也可以根据实际需要进行扩充。
说简单一点,就是记录下某个事件点、运行了什么功能、运行是否有异常。
对,就是这么简单。
时间,这个不想讲太复杂,就直接通过系统自带的获取本地电脑时间语法即可。如果系统时间有问题,自己想想办法喽。
事件,主要将关心的代码运行状态记录下来,比如通过某某邮箱向某某邮箱发了一封邮件、是否发送失败;再比如20秒打死一只小怪物、捡到了XX装备、物品栏是否已满;low一点的,点击了某个坐标、键盘按了哪个键。
2
日志的用途
首先,翻看日志,可以知道代码是否有按预设的流程运行,是否有出现异常等等。
其次,通过日志异常情况,可以反过来总结代码存在的问题,是否有bug等等。
最后,作为历史数据存档,直到某一天要做个统计啥的,翻一下日志,突然发现,原来按键精灵已经替我完成了几百万个工作
3
日志代码
直接贴一个我一直在用的版本,虽然简单,但的确好用。
func_name = 函数功能("hello")
path = "C:\record_log.txt"
Call logging(func_name,path)
Function logging(func_name,path)
MyDate = Date
MyTime = Time
text = MyDate & " " & MyTime & "执行了" & func_name
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
IsFile = Plugin.File.IsFileExist(path)
If IsFile = True Then
Set f = fso.OpenTextFile(path, 8, True)
f.WriteLine text
f.Close
Else
Set f = fso.CreateTextFile(path, True)
f.WriteLine text
f.Close
End If
End Function
Function 函数功能(a)
函数功能=a
End Function
可能一眼望去很繁琐,有点不太友好
但是按键精灵学到一定阶段以后,其实也就慢慢习惯了,而且类似这种函数,都是一劳永逸的。毕竟,逻辑写好、封装成函数,coding不同的脚本时,复制粘贴一下就能直接用
简单讲一下代码逻辑:前面两句一个是获取函数名称,一个是设置日志存盘文件路径。接着,就是往这个日志文件里面写入相应的日志,做成了一个函数。
详解一下函数实现过程:
Date和Time方法,是直接获取系统日期和时间,字符串拼接一下,就是我们要存入日志中的内容text了;
接着就是写文件内容的命令,对新手肯定不太友好,但是逻辑不复杂,就是创建一个文件对象,然后往path路径的文件里写一个text内容(如果这个路径文件不存在,就先新建再写;如果存在,就直接写)。
写文本内容的命令不需要深入,可以直接复制拿去用即可
至于最后的函数功能(a),可以根据自己脚本代码情况,灵活变通。说白了,就是知道运行了什么功能,便于写日志。如果不善于总结归纳,text自定义一个内容也是ok的,日志嘛,仅此而已。
运行结果,随便贴一点,便于大家理解:
2019/8/25 9:39:46执行了hello
2019/8/25 9:40:09执行了hello
2019/8/25 9:40:13执行了hello
2019/8/25 9:45:54执行了hello
2019/8/25 9:45:54执行了hello
好了,关于日志的使用方法,就介绍到这里,等大家的日志文件攒到几千几万行的时候,还是会比较有成就感的