1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python发送微信消息(文字 图片 文件)给指定好友和微信群 零基础可看懂(附源码和教程)

Python发送微信消息(文字 图片 文件)给指定好友和微信群 零基础可看懂(附源码和教程)

时间:2023-11-19 01:38:15

相关推荐

Python发送微信消息(文字 图片 文件)给指定好友和微信群 零基础可看懂(附源码和教程)

前言

本示例是调用Windows API模拟发送,用Python调用win32api这个库来调用Windows API模拟人的手动操作来发送消息。

在使用前,请将你微信的窗口设置为在最前面,这样就便于程序找到你的窗口!

文末可获取大量Python学习资源

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_TOPMOST, 0, 0, 300, 500, 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(‘已发送’)

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

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

动图演示

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

1、发送消息给好友

2、发送消息到微信群

3、邀请微信进群

4、将微信移出群聊

5、发布群公告

6、转发一篇图文

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()

time.sleep(1)

# 确定转发

pyautogui.moveTo(1108, 755)

pyautogui.click()

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

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

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

SendWxFileMsg(‘sansure’,r"C:\Users\TANKING\Desktop\cbzqx77.jpg")

#转发群里最新的一条消息(微信号或微信昵称或备注,群名称)

ZhuanfaMsg(‘sansure’,‘里客云科技’)

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(文末领取)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。

好文推荐

了解python的前景:/weixin_49892805/article/details/127196159

python有什么用:/weixin_49892805/article/details/127214402

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。