Python给指定微信好友自动发送信息和图片

import os
import win32gui #pywin32-221.win-amd64-py3.7.exe
import win32con
from ctypes import *
import win32clipboard as w
import time
from PIL import Image #pip install pillow

pip install -i https://pypi.douban.com/simple pillow

import win32api

发送文字

def setText(info):
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, info)
w.CloseClipboard()

发送图片

def setImage(imgpath):
im = Image.open(imgpath)
im.save('1.bmp')
aString = windll.user32.LoadImageW(0, r"1.bmp", win32con.IMAGE_BITMAP, 0, 0, win32con.LR_LOADFROMFILE)

if aString != 0:  ## 由于图片编码问题  图片载入失败的话  aString 就等于0
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_BITMAP, aString)
    w.CloseClipboard()  

微信搜索框不会自动获取焦点,故需要模拟鼠标点击到搜索框的位置

def m_click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

def pasteInfo():
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 searchByUser(uname):
hwnd = win32gui.FindWindow('WeChatMainWndForPC', '微信')
setText(uname)
m_click(100,40)
time.sleep(0.5)
m_click(100,40)
pasteInfo()
time.sleep(1)
m_click(100,120)#搜索到之后点击
#win32api.keybd_event(13,0,0,0)#回车
#win32api.keybd_event(13,0,KEYEVENTF_KEYUP,0)
#win32gui.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
#win32gui.SendMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

def sendInfo():
time.sleep(1)
pasteInfo()
time.sleep(1)
win32api.keybd_event(18, 0, 0, 0) #Alt
win32api.keybd_event(83,0,0,0) #s
win32api.keybd_event(83,0,win32con.KEYEVENTF_KEYUP,0) #释放按键
win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0)

发送完信息之后关闭窗口(跟QQ不一样,可以不关闭),接着搜索发送

def closeByUser(uname):
hwnd = win32gui.FindWindow('WeChatMainWndForPC', '微信')
win32api.keybd_event(18,0,0,0) #Alt
win32api.keybd_event(115,0,0,0) #F4
win32api.keybd_event(115,0,KEYEVENTF_KEYUP,0)
win32api.keybd_event(18,0,KEYEVENTF_KEYUP,0)

'''
searchByUser('Tony老师')
setText('Tony老师理发师')
sendInfo()
time.sleep(1)
searchByUser('文件传输助手')
setText('地表最强CPU')
sendInfo()
'''

获取无后缀的图片名称

def getNosuffixImgName(imgname):
return os.path.splitext(imgname)[0]

imgdir='imgs/'
imgs=os.listdir(imgdir)
for img in imgs:
searchByUser(getNosuffixImgName(img))
setImage(imgdir+img)
sendInfo()
time.sleep(1)
http://www.manongjc.com/detail/22-xfnkrxxytyxkisz.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (一)Webdriver概述 Webdriver (Selenium3)是一种用于Web应用程序的自动测试工...
    阿飞666666阅读 3,265评论 0 1
  • 首先本文要实现的是打开指定网页,右击保存为指定名.txt,网页保存类型为txt,后续再读取txt处理。 好下面准备...
    蓝云风翼阅读 4,960评论 0 0
  • 自动化中上传按钮一直是一个比较容易出变数的元素,按照类别分为两大类,分别是input类型与非input类型。 一、...
    社会主义顶梁鹿阅读 4,556评论 0 0
  • 天我想学习记录的内容是——如何用python实现录屏。 1 写在前面 作为一名测试,有时候经常会遇到需要录屏记录自...
    Python新视界阅读 4,538评论 0 1
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 128,471评论 2 7

友情链接更多精彩内容