from PIL import Image from ctypes import * import win32gui import win32api import win32con import win32clipboard as w import time def FindWindow(chatroom): win = win32gui.FindWindow(None, chatroom) 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, 100, 100, 500, 500, win32con.SWP_SHOWWINDOW)#第二个参数是置顶,前两个数字是位置,后两个数字是大小,最后一个是显示 win32gui.SetForegroundWindow(win) # 获取控制 time.sleep(0.5) else: print('找不到该窗口,请双击联系人,保证其是一个单独的窗口' % chatroom) def setText(aString): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_UNICODETEXT, aString) w.CloseClipboard() def setpic(imgpath): w.OpenClipboard() w.EmptyClipboard() im = Image.open(imgpath) im.save('1.bmp') aString = windll.user32.LoadImageW(0, r"1.bmp", win32con.IMAGE_BITMAP, 0, 0, win32con.LR_LOADFROMFILE) print(aString) if aString != 0: ## 由于图片编码问题 图片载入失败的话 aString 就等于0 w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_BITMAP, aString) w.CloseClipboard() def zhanTie(): win32api.keybd_event(17, 0, 0, 0) # ctrl键位码是17 win32api.keybd_event(86, 0, 0, 0) # v键位码是86 win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0) # 释放按键 win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0) def huiche(): win32api.keybd_event(18, 0, 0, 0) # Alt键位码 win32api.keybd_event(83, 0, 0, 0) # s键位码 win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0) # 释放按键 win32api.keybd_event(83, 0, win32con.KEYEVENTF_KEYUP, 0) def send(name, msg): FindWindow(name) setText(msg) zhanTie() huiche() def sendImage(name,imgpath): FindWindow(name) setpic(imgpath) zhanTie() huiche()
Python实现自动发送微信文字\图片
最新推荐文章于 2024-09-05 10:30:27 发布
这段代码展示了如何使用Python的win32api模块模拟键盘事件,实现自动在特定聊天窗口中发送文本和图片。通过FindWindow函数找到指定聊天窗口,并利用SetForegroundWindow设置窗口为活动状态。然后,利用setText和setpic函数将文本和图片内容放入剪贴板,最后通过模拟Ctrl+V和Alt+S快捷键完成发送操作。
摘要由CSDN通过智能技术生成