专栏首页奔跑的键盘侠按键精灵——如何实现办公自由(二)

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

作者|我是奔跑的键盘侠

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

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

1

定时器剖析

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

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

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

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

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

2

实现代码

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

//定时关机的循环
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-

本文分享自微信公众号 - 奔跑的键盘侠(runningkeyboardhero),作者:我是奔跑的键盘侠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C语言——小学一年级题目解析(一)

    printf("The end value of a is %d.\n",a);

    Ed_Frey
  • C语言——小学一年级题目解析(二)

    显然,2>1,if不成立, 只执行b=3。输出结果a为首次赋值的2,b为第二次赋值3。

    Ed_Frey
  • C语言——小学三年级题目解析(一)

    a>0成立,进入if(b>0)循环,b>0不成立,走else,也就是a--,减完之后a为0。

    Ed_Frey
  • 业务逻辑漏洞探索之活动类漏洞

    很多平台都会通过参与活动类赢取奖励的功能的方式来吸引用户或是使用资金、虚拟货币、积分等进行交易,然而如果这些功能没有设计好,很容易造成重大的利益损失。例如年初拼...

    漏斗社区
  • SC2018 | 中国揭秘下一代超算,清华摘得竞赛总冠军

    全球超级计算大会(Supercomputing Conference,简称 SC)是国际超算领域的顶级会议,国际影响力巨大。在这次大会上,清华大学的团队还获得了...

    机器之心
  • 不要再被骗了------QQ盗号原理大揭秘

    Angel_Kitty
  • python中 for ... else

    在<Effective Python:编写高质量Python代码的59个有效方法>  这本书中并不推荐用 for else语句

    py3study
  • Selenium与页面的交互实战

    在学习UI自动化后我们使用到的selenium提供了许多API方法与页面进行交互,如点击、键盘输入、打开关闭网页、输入文字、等 ( selenium之键盘事件实...

    测试小兵
  • linux网络编程之System V 信号量(二):用信号量实现进程互斥示例和解决哲学家就餐问题

    一、我们在前面讲进程间通信的时候提到过进程互斥的概念,下面写个程序来模拟一下,程序流程如下图: ? 即父进程打印字符O,子进程打印字符X,每次打印一个字符后要s...

    s1mba
  • 利用Python合并两个PDF文件

    在许多情况下,您需要获取两个或更多PDF并将它们合并为一个PDF。例如,您可能有一个标准封面页,需要继续处理多种类型的报表。您可以使用Python来帮助您完成这...

    PM小王

扫码关注云+社区

领取腾讯云代金券