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 相关文章推荐
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
python求质数的3种方法
Sep 28 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
python适合人工智能的理由和优势
Jun 28 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
python进行参数传递的方法
May 12 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
使用Python实现音频双通道分离
Dec 25 Python
python 制作网站筛选工具(附源码)
Jan 21 Python
python3操作redis实现List列表实例
Aug 04 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
第六节--访问属性和方法
2006/11/16 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
php生成图片验证码的方法
2016/04/15 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
JS 建立对象的方法
2007/04/21 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
Pytorch之保存读取模型实例
2019/12/30 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
J2EE相关知识面试题
2013/08/26 面试题
公司司机岗位职责范本
2014/03/03 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
会议通知范文
2015/04/15 职场文书
小学信息技术教学反思
2016/02/16 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫