首先,定时发送消息,一般发送内容主要包括文本、表格和图像。因此本文主要讲解文本、表格和图像发送
文本的发送
发送文本,主要是将文字内容存入内存中,然后操作窗口句柄将内存中文字粘贴到对应窗口中,最后再利用键位操作将内容发送出去:
关键代码如下:
def ctrlV():
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 altS():
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)
表格的发送
表格的内容发送主要是将excel数据进行处理后,将要发送的内容进行复制到内存中,最后也是通过键位将要发送的数据发出去。关键代码如下:
```python
def excel_catch_screen():
excel = DispatchEx("Excel.Application")
excel.Visible = True
excel.DisplayAlerts = False
wb = excel.Workbooks.Open(path)
ws = wb.Sheets("Sheet1")
ws.Range("A1:L10").CopyPicture()
ws.Paste()
name = str(uuid.uuid4())
new_shape_name = name[:6]
excel.Selection.ShapeRange.Name = new_shape_name
ws.Shapes(new_shape_name).Copy()
ImageGrab.grabclipboard()
wb.Close(SaveChanges=0)
excel.Quit()
图片的发送
图片的发送首先要将图片复制到内存,然后再将图片粘贴到句柄窗口中,其关键代码如下所示:
```python
def paste_img(file_img):
image = Image.open(file_img)
output = BytesIO()
image.save(output, 'BMP')
data = output.getvalue()[14:]
output.close()
setImage(data)
def setImage(data):
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_DIB, data)
w.CloseClipboard()
通过以上三步,就可以将想要发送的文本、表格和图片发送到对应的微信窗口句柄定。其发送结果如下所示: