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下函数参数的传递(参数带星号的说明)
Sep 19 Python
Python中apply函数的用法实例教程
Jul 31 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Python pymongo模块常用操作分析
Sep 01 Python
python实现随机漫步方法和原理
Jun 10 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
Python接口开发实现步骤详解
Apr 26 Python
python中threading开启关闭线程操作
May 02 Python
使用darknet框架的imagenet数据分类预训练操作
Jul 07 Python
深入理解pytorch库的dockerfile
Jun 10 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遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
accesskey 提交
2006/06/26 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
react-router中的属性详解
2017/06/01 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
初学Python函数的笔记整理
2015/04/07 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
python剪切视频与合并视频的实现
2020/03/03 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
大学生期末自我鉴定
2014/02/01 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
鉴定评语大全
2014/05/05 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
python周期任务调度工具Schedule使用详解
2021/11/23 Python