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处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
python实现决策树
Dec 21 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
django如何通过类视图使用装饰器
Jul 24 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 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中获取文件扩展名的N种方法小结
2012/02/27 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
提高网站信任度的技巧
2008/10/17 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
bootstrap选项卡使用方法解析
2017/01/11 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
印度在线购物网站:Paytmmall
2019/07/24 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
就职演讲稿范文
2014/05/19 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
2014年安全员工作总结
2014/11/13 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
生产设备维护保养制度
2015/08/06 职场文书
思品教学工作总结
2015/08/10 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
SQL之各种join小结详细讲解
2021/08/04 MySQL