窗口必須是獨(dú)立窗口 不能好幾個(gè)并在一起
窗口名字輸入對(duì)方的ID传泊,備注就行
通過模擬按鍵實(shí)現(xiàn)
import win32gui
import win32con
import win32clipboard
from PIL import Image
from ctypes import *
import os
# 判定要發(fā)送圖片還是文字
msgtype = input("img為發(fā)送圖片裹赴,msg為發(fā)送文字")
# 要發(fā)送的消息
if msgtype == "msg":
msg = input("要發(fā)送的消息:")
# 復(fù)制消息到剪切板
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32con.CF_UNICODETEXT, msg)
win32clipboard.CloseClipboard()
else:
# 打開圖片
msg = Image.open(input("輸入圖片地址:"))
msg.save("test.bmp") # 轉(zhuǎn)換格式為BMP
msg = windll.user32.LoadImageW(0, "test.bmp", win32con.IMAGE_BITMAP, 0, 0, win32con.LR_LOADFROMFILE)
if msg != 0: # 由于圖片編碼問題 圖片載入失敗的話 aString 就等于0
# 復(fù)制消息到剪切板
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32con.CF_BITMAP, msg)
win32clipboard.CloseClipboard()
# 刪除轉(zhuǎn)換后的BMP文件(不影響源文件)
os.remove("test.bmp")
# 窗口名字
name = input("窗口名:")
# 獲取窗口句柄
handle = win32gui.FindWindow(None, name)
# 填充消息
win32gui.SendMessage(handle, 770, 0, 0)
# 回車發(fā)送消息
win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)