python操作微信自动发消息的实现(微信聊天机器人)


Posted in Python onJuly 14, 2020

前言

最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已经不能登录了所以失败,我又试了第二种方法,我试图找到微信界面上的搜索框控件,使用搜索框控件找到想法消息的人,然后发送消息,结果就是又失败了,为啥呢?经过我翻翻翻,找找找,发现微信的界面是使用duilib实现的,界面都是画上去的,控件只是逻辑上存在,而实际没有,我们根本获取不到,然后我只能通过手动移动鼠标的方式来实现了

1.打开微信,固定在左上角,这样便于我们固定微信上各个控件所在坐标

2.把鼠标移动到微信左边的“通讯录”按钮上,单击,打开通讯录

3.把鼠标移动到搜索框把你要找的人的微信名复制进去,回车,打开对话框(你要问我为什么要先打开通讯录再去搜索框搜?问就是不知道,其实是经过我的实验这样比较稳定,直接搜有bug,如果你能找到其他的解决办法请告诉我,谢谢啦)

4.把你要发送的话复制到对话框,回车或者alt+s 发送

这就结束了,下面是部分代码

import win32clipboard as w
import win32con
import win32api
import win32gui
import time
 
 
#把文字放入剪贴板
def setText(aString):
  w.OpenClipboard()
  w.EmptyClipboard()
  w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
  w.CloseClipboard()
 
#模拟ctrl+V
def ctrlV():
  win32api.keybd_event(17,0,0,0) #ctrl
  win32api.keybd_event(86,0,0,0) #V
  win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0)#释放按键
  win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)
 
#模拟alt+s
def altS():
  win32api.keybd_event(18,0,0,0)
  win32api.keybd_event(83,0,0,0)
  win32api.keybd_event(83,0,win32con.KEYEVENTF_KEYUP,0)
  win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)
# 模拟enter
def enter():
  win32api.keybd_event(13,0,0,0)
  win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)
#模拟单击
def click():
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
#移动鼠标的位置
def movePos(x,y):
  win32api.SetCursorPos((x,y))
 
if __name__=="__main__":
  
  #获取鼠标当前位置
  #hwnd=win32gui.FindWindow("MozillaWindowClass",None)
  hwnd = win32gui.FindWindow("WeChatMainWndForPC", None)
  win32gui.ShowWindow(hwnd,win32con.SW_SHOW)
  win32gui.MoveWindow(hwnd,0,0,1000,700,True)
  time.sleep(0.01)
  #1.移动鼠标到通讯录位置,单击打开通讯录
  movePos(28,147)
  click()
  #2.移动鼠标到搜索框,单击,输入要搜索的名字
  movePos(148,35)
  click()
  setText('胡歌')
  ctrlV()
  time.sleep(1) #别问我为什么要停1秒,问就是给微信一个反应的时间,他反应慢反应不过来,其他位置暂停的原因同样
  enter()
  time.sleep(1)
  #3.复制要发送的消息,发送
  setText('你好啊')
  ctrlV()
  altS()

全部代码我已经放在了我的github上,欢迎下载https://github.com/p910/python

到此这篇关于python操作微信自动发消息的实现(微信聊天机器人)的文章就介绍到这了,更多相关python操作微信自动发消息 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python插入数据到列表的方法
Apr 30 Python
python制作爬虫爬取京东商品评论教程
Dec 16 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
Python Flask框架模板操作实例分析
May 03 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
python web框架 django wsgi原理解析
Aug 20 Python
Python使用configparser读取ini配置文件
May 25 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
python复合条件下的字典排序
Dec 18 Python
python如何写try语句
Jul 14 #Python
Python操作MySQL数据库的示例代码
Jul 13 #Python
Python基于正则表达式实现计算器功能
Jul 13 #Python
python输出结果刷新及进度条的实现操作
Jul 13 #Python
python实现图像外边界跟踪操作
Jul 13 #Python
Python实现打包成库供别的模块调用
Jul 13 #Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 #Python
You might like
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
php 操作调试的方法
2012/07/12 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
js 编写规范
2010/03/03 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
urllib2自定义opener详解
2014/02/07 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
教师实习自我鉴定
2013/12/11 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
个人典型事迹材料
2014/12/30 职场文书
挂靠协议书
2015/01/27 职场文书
酒店前台辞职书
2015/02/26 职场文书
Golang 实现WebSockets
2022/04/24 Golang