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实现自动发送微信文字\图片
最新推荐文章于 2025-09-18 16:25:07 发布
这段代码展示了如何使用Python的win32api模块模拟键盘事件,实现自动在特定聊天窗口中发送文本和图片。通过FindWindow函数找到指定聊天窗口,并利用SetForegroundWindow设置窗口为活动状态。然后,利用setText和setpic函数将文本和图片内容放入剪贴板,最后通过模拟Ctrl+V和Alt+S快捷键完成发送操作。
1万+





