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对象转JSON字符串的方法
Apr 27 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
python实现图片筛选程序
Oct 24 Python
Python Series从0开始索引的方法
Nov 06 Python
Flask框架工厂函数用法实例分析
May 25 Python
python里dict变成list实例方法
Jun 26 Python
python通过链接抓取网站详解
Nov 20 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
详解Django中 render() 函数的使用方法
Apr 22 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+xml实现在线英文词典查询的方法
2015/01/23 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
微信小程序实现城市列表选择
2018/06/05 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
使用python实现接口的方法
2017/07/07 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
python基于opencv实现人脸识别
2021/01/04 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
木工主管岗位职责
2013/12/08 职场文书
开水果连锁店创业计划书
2013/12/29 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
车辆年检委托书范本
2014/10/14 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
Python 实现Mac 屏幕截图详解
2021/10/05 Python