要说这个“qq520”,那可真是说来话长了。它一开始根本就没名字,就是我那会儿,被我妈天天念叨着“你几点回?啥时候到?到家说一声!”,给烦得不行,但又不好意思直接说她老人家。她就是那种,你回个晚了,她能一晚上醒好几次,就怕你出什么事。
那阵子,我工作忙得是脚不沾地,经常加班到很晚,有时候项目一上线,忙到凌晨两三点那都是常事。每次一回家,都恨不得直接躺倒,哪有力气还掏手机,点开微信,给我妈发个“我到家了”?不是我不想说,是真的累到没力气,一进门就想瘫在沙发上。结果第二天一早,我妈又得念叨我半天,说她一晚上没睡
刚开始,我试过定闹钟提醒自己,可一忙起来,闹钟响了也顾不上。或者一到家,手机就往床头一扔,根本没听见。后来想着,能不能搞个什么自动的?我开始琢磨这事儿,觉得不能老这样,得想个法子。
我最早是想用智能家居的,比如我一开门,门磁感应了,能不能给我妈发个消息。结果一查,那玩意儿还得买设备,还得配置,我看了半天教程都头大。我是个动手能力还行,但不太喜欢折腾硬件的人,觉得太麻烦了,就放弃了。
然后我就想,有没有纯软件的法子。我上班用电脑,下班回家也用电脑玩玩游戏啥的。我就开始想,是不是能搞个脚本,当我电脑开机,或者我登录了我的微信/QQ,就能自动发个消息出去?
开始折腾“qq520”
有点折腾劲儿。那会儿正好手上闲下来一点,我就想自己动手写个。我压根儿没想着要搞得多高大上,就想着能用就行。我寻思着,最简单的法子,是不是能模拟一下我在微信或者QQ上打字、发送的动作?
-
第一步:找工具。我先是去网上搜了一圈,有没有什么现成的库能控制桌面应用的。找来找去,发现有个叫
pyautogui的Python库,据说能模拟鼠标键盘操作,一下子就觉得有戏了。我这人对Python还算熟,立马就动手装起来。 -
第二步:摸清路径。装完库,我先试着让它自动打开个记事本,打几个字,再关掉。搞了几次,发现这东西是真的好使。然后我就开始想,怎么才能精准地找到微信或者QQ的窗口,找到我妈的聊天框,然后输入“妈,我到家了。”发出去。
这个过程可把我折腾坏了。微信和QQ的窗口位置不是固定不变的,有时候打开位置会有点偏移。而且我妈的聊天框,也不能保证每次都在固定位置。我试着用了屏幕截图识别文字的功能,但有时候识别率不高,又有点卡。
-
第三步:迂回策略。硬刚窗口不行,我就想了个迂回的法子。我不直接去定位聊天框了,我直接把要发的消息写死在一个文本文件里。然后用
pyautogui模拟快捷键Ctrl+C,把消息复制下来。我让脚本自动打开微信(或者QQ),通过搜索功能,输入我妈的昵称,找到她的聊天框,然后模拟Ctrl+V粘贴,模拟Enter键发送。这个方法成功率高了不少,因为搜索功能比较稳定,只要昵称没错,总能找到。而且复制粘贴也比直接输入文字要快和准。
-
第四步:触发机制。消息能发了,那什么时候发?我不可能每天都手动去运行脚本。我就想了,我是到家后才需要发消息,那是不是可以设置个时间,或者检测一下我电脑的开机状态?
我决定用一个简单的逻辑:脚本一运行,就检测当前时间。如果是在我平时回家的时间段(比如晚上九点到凌晨三点),就说明我大概率是到家了。为了防止重复发送,我让它在一个时间段内只发送一次,并且在发送后生成一个日志文件,下次运行如果发现日志里有今天的记录,就不再发了。
为了让它每次开机自动运行,我就把它加到了开机启动项里。这样,我只要一到家,打开电脑,它自己就会默默地跑起来,帮我把消息发出去了。
这玩意儿做出来后,我妈果然再也没念叨我过晚上回家不吱声的事儿了。有一次她还跟我说:“你最近是不是不加班了?怎么回家都挺早的,还知道跟我说一声。”我听了心里偷着乐,嘴上就说:“是妈,最近工作没那么忙了。”
这个小脚本,我也不知道为啥就随手起了个名字叫“qq520”,可能就是因为它虽然简单,但解决了我一个大烦恼,让我妈安心,我也省心。对我来说,它就有点“我爱你”那意思,爱我妈,也爱我自己能有点自己的小清净。
后来我把这个脚本改了又改,还加了点错误处理。比如如果微信没打开,它会先尝试打开微信。如果我妈的昵称找不着,它会等一会儿再试。虽然功能还是那么单一,但确实解决了我的问题。有时候,解决问题的办法不一定非得有多复杂,能真正用上、解决实际困难的,就是好办法。这事儿让我觉得,很多时候,小小的动手能力,真的能给自己带来大大的方便和快乐。
