前言

最近在学习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()

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

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

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

    前言 最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已 ...

  2. python qq自动发消息软件_Python之qq自动发消息的示例代码

    准备:pip install win32gui 可能遇到的麻烦: No module named 'win32gui' 的解决方法(踩坑之旅) 源码: import win32gui import w ...

  3. python操作微信自动发消息(微信聊天机器人)

    前言 最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已 ...

  4. 钉钉机器人自动回复消息_微信pc客户端自动发消息(微信聊天机器人)

    前言 另外此文章首先发在了csdn有兴趣的可以去看一下:https://blog.csdn.net/qq_27399/article/details/105767682 最近在学习python,发现一 ...

  5. 企业微信群机器人是什么?企微机器人如何自动发消息?

    经常有很多用户会问我们,企业微信群机器人是什么,有什么用,有什么限制?企业微信群机器人提供的是一个webhook消息,如何可以通过这个来自动发消息呢?之前写过一些关于企业微信群机器人如何发消息的教程, ...

  6. python之钉钉机器人自动发消息——傻瓜式教程

    文章目录 python之钉钉机器人自动发消息--傻瓜式教程 前言 钉钉创建机器人 主要流程如下: 细节流程如下 python连接dingtalk 发送MarkDown格式消息 源码展示 效果展示 代码 ...

  7. python-pyautogui微信自动发消息

    2022-5-25 使用 tkinter ,pyautogui,pyperclip 制作了控制电脑微信自动发消息程序 带注解 import timeimport tkinter as tk from ...

  8. QQ、微信、lol自动发消息工具

    写了一个电脑自动发消息的工具,脱离双手,让我们聊天更方便跟简洁! 电脑软件. 自动发消息,双手离开键盘!能设置次数和发送间隔. ​​​​​​链接在这:阿里云盘分享提取码:51ar   一定要先看使用教 ...

  9. 用Python实现自动发消息,自定义内容,太省事了!

    有时候让了解放双手,让电脑来帮我们自动发一些我们想要发的消息,挺省力的,比如说白天写好了演讲稿,晚上要在群里进行文字演讲,那么我们就可以用脚本来实现自动复制.粘贴和发送文字的功能,从而解放我们自己,不 ...

最新文章

  1. mysql-atlas安装及使用教程
  2. ASP.NET 学习笔记_13 文章发布管理小系统
  3. SAP UI5 初学者教程之七 - JSON 模型初探试读版
  4. IOC操作Bean管理注解方式(创建对象)
  5. mvc源码解读(10)-ParameterDescriptor方法Action方法的参数描述对象
  6. Spring + RocketMQ使用
  7. 牛客编程巅峰赛S2第7场 - 钻石王者
  8. MySql 把B表数据插入到A表中
  9. Java—网络编程相关概念
  10. ExtJs6 FontAwesome 图标引用
  11. 沟通成本:信任,外包永远的痛——外包实践(65)
  12. 流量计算机标准,-流量计执行标准
  13. android 橡皮擦 黑色,Android画板,橡皮擦为黑色痕迹的问题
  14. PHP socket以及http、socket、tcp、udp
  15. C语言求一元二次方程的根,这题很简单嘛?看看这种想法很惊奇!
  16. VS2010出现的转换COFF期间失败问题
  17. 慢慢整理一下用到的游戏相关工具
  18. JavaScript闭包研究
  19. Oracle 错误总结及解决方法
  20. Toast的简单用法

热门文章

  1. 直方图均衡化的代码解析
  2. python plt 绘制直方图概率密度和不为1
  3. 判断形参S所指字符串是否是回文,若是,函数返回1,不是则返回0,并在main中实现输出...
  4. C#多线程编程实战(二)
  5. 怎样把Linux的私钥文件id_rsa转换成putty的ppk格式
  6. 叠箱子问题 之 动态规划
  7. redis各数据结构的使用场景
  8. 使用Redis构建全局并发锁
  9. 静态路由和DHCP/NAT/VLAN的配置实例
  10. JS打开摄像头并截图上传