情不知所起一往而深!
所以呢,每天必须留言,点赞,去空间。
我想我可是擅长(装逼)自动化的啊,怎么能,像这些重复的事情怎么能去干呢,
第一个想到的是appium,好久不弄了,算了不想拾起了。
马上想到,以前做selenium的时候,用过一个autoit。
官方api走起,看了半天,发现只需有窗口,鼠标键盘事件就能满足我的需求了。(中文文档:https://www.jb51.net/shouce/autoit/),
然后就开始研究怎么实现:
1.首先呢,扣扣设置成开启自动登录:
2._RunDos("explorer.exe " &chr("34")& "tencent://Message/?menu=yes&exe=&uin=" & "1234(QQ号)" & "&websiteName=未知区域" &chr("34")& "")
3.开始模拟点击,输入等操作。
完整代码如下:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=7872\g9.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
#include <Process.au3>
_RunDos("explorer.exe " &chr("34")& "tencent://Message/?menu=yes&exe=&uin=" & "123(扣扣号)" & "&websiteName=未知区域" &chr("34")& "")
;判断是否有该聊天框
If WinActivate("老婆") Then
;~ 如果有获取光标位置
$test = WinGetPos("老婆")
Sleep(500)
;输入test
Send("123")
;~ 由光标位置推算发送按钮绝对位置
MouseClick("left",$test[0]+520,$test[1]+550,1)
;由光标位置推算发送按钮绝对位置
MouseClick("left",$test[0]+320,$test[1]+26,1)
$dianzan = 0
While $dianzan<=10
$dianzan= $dianzan+1
;由于弹框总是居中所以直接用绝对位置
MouseClick("left",1280,800)
WEnd
;~ 由光标位置推算,空间位置
MouseClick("left",$test[0]+410,$test[1]+26,1)
Sleep(5000)
;由于浏览器打开无法确定坐标所有采用按键方式
$i = 0
;按34个tab键
While $i <= 34
Send("{TAB}")
$i = $i + 1
Sleep(500)
WEnd
Sleep(500)
Send("留言123")
Send("{TAB}")
Send("{TAB}")
Send("{TAB} ")
Send("{ENTER}")
Else
MsgBox(0,"","没有该聊天框")
EndIf
上面代码可以实现去空间留言,点赞,扣扣发消息功能。
只是抛转引玉,欢迎大家指正。
最后可以封装一个exe.加上自己喜欢的图标