1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python发送微信消息(文字 图片 文件)给指定好友和微信群(调用Win32 API模拟人的

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

时间:2019-03-05 08:33:19

相关推荐

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

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

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

import pyautoguiimport timeimport win32apiimport win32conimport win32guiimport win32clipboard as wdef 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、转发一篇图文

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

import pyautoguiimport timeimport win32apiimport win32conimport win32guiimport win32clipboard as wdef 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发送微信消息(文字 图片 文件)给指定好友和微信群(调用Win32 API模拟人的手动操作来发送消息)

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