您现在的位置是:首页 > 正文

autoit几行代码实现QQ自动发送消息,点赞,去空间留言。

2024-02-29 12:46:15阅读 0

情不知所起一往而深!

所以呢,每天必须留言,点赞,去空间。

我想我可是擅长(装逼)自动化的啊,怎么能,像这些重复的事情怎么能去干呢,

第一个想到的是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.加上自己喜欢的图标

网站文章

  • c++11 mutex使用。

    转自:http://www.cplusplus.com/reference/mutex/mutex/// mutex example#include &lt;iostream&gt; // std::cout#include &lt;thread&gt; // std::thread#include &lt;mutex&gt; // std::m...

    2024-02-29 12:45:46
  • MySQL存储过程:包含输入和输出

    MySQL存储过程:包含输入和输出

    MySQL存储过程:包含输入和输出DELIMITER $$ DROP PROCEDURE IF EXISTS `p_integral_freeze_product_type_modify` $$ CREATE PROCEDURE p_integral_freeze_product_type_modify (IN `in_contractId` BIGINT ,IN `in_contractAp

    2024-02-29 12:45:39
  • 如何使用vue2 实现截图的功能? 最新发布

    如何使用vue2 实现截图的功能? 最新发布

    这就是在Vue 2中实现截图功能的基本步骤。你可以根据具体需求进一步扩展和优化这个功能。请注意,截图功能可能需要用户的许可,因此请确保遵守隐私和安全相关的法律和规定。

    2024-02-29 12:45:31
  • 2017中国大学生程序设计竞赛 - 女生专场

    题意:给你测试数据数,题目数和提交次数,及每次提交的题目ID,时间和结果,求所用总时间.计算规则:若AC了题目,则用AC时时间+之前该题提交非正确次数*20有个坑,即使一个题目错了1w次,最后没有AC,那些罚时讲不会计算.思路:用两个数组,一个标记题目是否AC,另一个数组记录AC前不正确提交次数.

    2024-02-29 12:45:24
  • java自定义sql 格式化工具

    /** * @author :范春宇 * @date :Created in 2021/11/3 20:06 * @description: sql占位符替换工具类 * @modified By: *...

    2024-02-29 12:44:58
  • C/C++内存知识(一)

    C/C++内存知识(一)

      一个由C/C++编译的程序占用的内存分为以下几个部分   1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。   2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。   3、全局区(静态区)(s...

    2024-02-29 12:44:53
  • tiny4412 基础(七)移植command

    tiny4412 基础(七)移植command

    先看效果图​这个图是在裸机下跑的,移植了u-boot的command, 新的u-boot改成cli(命令行接口)使用起来非常方便:static int do_version (struct cmd_tbl_s *cmd_tbl_t, int argc, int type, char * const argv[]){ puts("version : V1.0 \r\n")...

    2024-02-29 12:44:21
  • SpringMvc整合Druid.

    SpringMvc整合Druid.SpringMvc整合Druid数据库连接池1.pom.xml添加依赖2.配置web.xml3.配置Spring4.访问监控页面5.碰到的问题 SpringMvc整合Druid数据库连接池 1.pom.xml添加依赖 com.alibaba druid ${dr

    2024-02-29 12:44:14
  • 《实用python程序设计》练习题:成绩排序

    描述 给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。 输入 第一行为n (0 &lt; n &lt; 20),表示班里的学生数目; 接下来的n行,每...

    2024-02-29 12:44:07
  • FCFS先来先服务算法C++

    FCFS简单的讲就是先到达的先服务,比如A进程3秒到达,B进程2秒到达的话,那么就让B一直执行到满足它所需的服务时间。它是非抢占式的。**

    2024-02-29 12:43:37