Python发送微信消息(文字、图片、文件)给指定好友和微信群(调用Win32 API模拟人的手动操作来发送消息)

pyautogui.click()

搜索窗口

ClipboardText(wxid)

time.sleep(1)

进入窗口

pyautogui.moveTo(155, 120)

pyautogui.click()

粘贴文本内容

ClipboardText(sendtext)

SendMsg()

print(‘已发送’)

调用函数(微信号或微信昵称或备注,需要发送的文本消息)

SendWxMsg(‘face6009’,‘Python发送微信消息’)

动图演示

经过学习,我在想要不要用这个方法实现一套简单的微信操作脚本,然后写成HttpApi,然后通过Http进行调用,在网页实现简单的远程控制微信,或者做个机器人等,都可以,但这个目前应该还会有不少的问题,例如延迟,精准度,这些都是一个问题,所以市面上没有人做这类型的,目前我已经实现了部分功能。

1、发送消息给好友

2、发送消息到微信群

3、邀请微信进群

4、将微信移出群聊

5、发布群公告

6、转发一篇图文

2021-09-02新增发送文件和转发群消息

import pyautogui

import time

import win32api

import win32con

import win32gui

import win32clipboard as w

def FindWindow(chatroom):

win = win32gui.FindWindow(None, chatroom)

print(“找到窗口句柄:%x” % win)

if win != 0:

win32gui.ShowWindow(win, win32con.SW_SHOWMINIMIZED)

win32gui.ShowWindow(win, win32con.SW_SHOWNORMAL)

win32gui.ShowWindow(win, win32con.SW_SHOW)

win32gui.SetWindowPos(win, win32con.HWND_TOP, 0, 0, 500, 700, win32con.SWP_SHOWWINDOW)

win32gui.SetForegroundWindow(win) # 获取控制

time.sleep(1)

tit = win32gui.GetWindowText(win)

print(‘已启动【’+str(tit)+‘】窗口’)

else:

print(‘找不到【%s】窗口’ % chatroom)

exit()

设置和粘贴剪贴板

def ClipboardText(ClipboardText):

w.OpenClipboard()

w.EmptyClipboard()

w.SetClipboardData(win32con.CF_UNICODETEXT, ClipboardText)

w.CloseClipboard()

time.sleep(1)

win32api.keybd_event(17,0,0,0)

win32api.keybd_event(86,0,0,0)

win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0)

win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)

模拟发送动作

def SendMsg():

win32api.keybd_event(18, 0, 0, 0)

win32api.keybd_event(83,0,0,0)

win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)

win32api.keybd_event(83,0,win32con.KEYEVENTF_KEYUP,0)

模拟发送微信文本消息

def SendWxMsg(wxid,sendtext):

先启动微信

FindWindow(‘微信’)

time.sleep(1)

定位到搜索框

pyautogui.moveTo(143, 39)

pyautogui.click()

搜索微信

ClipboardText(wxid)

time.sleep(1)

进入聊天窗口

pyautogui.moveTo(155, 120)

pyautogui.click()

粘贴文本内容

ClipboardText(sendtext)

发送

SendMsg()

print(‘已发送’)

关闭微信窗口

time.sleep(1)

pyautogui.moveTo(683, 16)

pyautogui.click()

模拟发送文件消息(图片、文档、压缩包等)

def SendWxFileMsg(wxid,imgpath):

先启动微信

FindWindow(‘微信’)

time.sleep(1)

定位到搜索框

pyautogui.moveTo(143, 39)

pyautogui.click()

搜索微信

ClipboardText(wxid)

time.sleep(1)

进入聊天窗口

pyautogui.moveTo(155, 120)

pyautogui.click()

选择文件

pyautogui.moveTo(373, 570)

pyautogui.click()

ClipboardText(imgpath)

time.sleep(1)

pyautogui.moveTo(784, 509)

pyautogui.click()

发送

SendMsg()

print(‘已发送’)

关闭微信窗口

time.sleep(1)

pyautogui.moveTo(683, 16)

pyautogui.click()

转发群里最新的一条消息

def ZhuanfaMsg(wxid,groupname):

先启动微信

FindWindow(‘微信’)

time.sleep(1)

定位到搜索框

pyautogui.moveTo(143, 39)

pyautogui.click()

搜索群

ClipboardText(groupname)

time.sleep(1)

进入群窗口

pyautogui.moveTo(155, 120)

pyautogui.click()

开始转发

pyautogui.moveTo(484, 439)

time.sleep(1)

pyautogui.rightClick()

pyautogui.moveTo(543, 454)

time.sleep(1)

pyautogui.click()

搜索用户

ClipboardText(wxid)

time.sleep(1)

pyautogui.moveTo(828, 406)

pyautogui.click()

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值