按键精灵——如何实现办公自由(二)

2020-04-27 13:53:49 浏览数 (1)

作者|我是奔跑的键盘侠

来源|奔跑的键盘侠(ID:runningkeyboardhero)

上一期的这个大饼,那今天就来讲一下里面的定时器,虽然名字叫定时器,看着好似很牛逼,其实就是一个循环逻辑,仅此而已。

1

定时器剖析

每个人自动办公的实际场景千变万化,要实现实时刷新(订单、客服对话等)处理任务,就需要一个循环的逻辑,完成一个任务后,继续完成下一个,而不是运行完一圈按快捷键再次启动脚本。

于是我们需要结合实际的场景,来设计一个循环的逻辑。

举个例子,处理实时订单,可以用for循环,检测一千次就for 1000,上不封顶。如果闲时循环需要1分钟,那一小时可循环60次,一天也不过1440次,仅此而已。

不过呢,很多时候,我们喜欢人工干预一下、手动去停止脚本,除了for循环次数设置大一点外,还可以用While True或者Do Loop这类可以无限循环的命令,看个人喜好吧。

如果要更精进一点,比如每天定时运行到17点,就可以在无限循环中,加一个flag,通过flag值的变化,来决定是否退出脚本或者做其他指令。

2

实现代码

最近没时间上windows设备调试代码,就简单罗列一下关键部分,大家可以自行尝试。

代码语言:javascript复制
//定时关机的循环
flag = false
Do
  …………
  …………
  If time > "17:00:00" Then
     flag = true
  EndIf
    
  If flag = True Then
    Call 关机()
  EndIf 
Loop

Fuction 关机()
   RunApp "cmd"
   …………
   return true
EndFuction

3

延伸扩展

如果要更进一步,就要考虑配置表或者界面了,方便维护代码。比如某一天,你突然觉得循环次数要调整,抑或是要修改自动关机时间,我们不建议直接切换到代码行中改代码。

为什么?因为很可能因为一个误操作,导致几百上千行的代码,没法运行了。

于是,我们需要一个良好的习惯,当然也并不局限于前面说的两种思路,你也可以先做好备份,然后再去改源代码,万一挂掉了还可以复原。

另外,每次改动代码,记得要做好手册说明,某年某月某日,更新了什么功能,刚开始可能感觉不到什么卵用。但是当你过了几年更新了十几个版本后,再回头来总结或者重构脚本,这个手册里记录的功能细节,定有妙用。

配置表:

无非就是做个txt或者其他格式的文档,一般格式就是:

循环次数:10000

刷新订单时间间隔(ms):1000

是否自动关机:是

关机时间:18:00:00

日志存盘目录:D:document

异常推送qq号码:123456

运行情况反馈邮箱:123456@qq.com

任何有可能修改的参数,你都可以把它记录到这个配置表里面,然后通过文本读取来获取变量值。某天,如果你要去修改,打开这个txt文档,直接修改即可。

界面:

网上随便找了个示例供大家参考:

看到这个示例,想必大家也就清晰了,其实跟配置表大同小异,可以在界面上对应的位置直接修改,你甚至可以分享给完全不懂按键的小伙伴使用。

4

配置表的读取使用问题

最后再啰嗦一下,配置表怎么用,通过文本读写来获取,如果读取这类固定值的参数,在脚本的开头读取一次即可,不需要用一个重新读一次。

如果配置表是实时更新、需要读取最新值的,文本读写都要3行代码起步(打开冰箱,取出大象,关上门),会显得很繁琐,可以将读写直接封装成函数,一行代码即可解决繁赘的问题。

代码略……

-END-

0 人点赞