200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python发送微信消息_python 发送QQ或者微信消息

python发送微信消息_python 发送QQ或者微信消息

时间:2020-01-06 09:21:02

相关推荐

python发送微信消息_python 发送QQ或者微信消息

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

废话少说,先上代码:

# coding = utf-8

import win32gui

import win32api

import win32con

import win32clipboard as clipboard

import time

from pynput.mouse import Button, Controller as mController

from pynput.keyboard import Key, Controller as kController

mouse = mController()

keyboard = kController()

# 传入类名,标题,返回tuple(句柄,坐标左,坐标左顶,坐标左右,坐标左底)

def findWindow(classname, titlename):

hand = win32gui.FindWindow(classname, titlename)

if(hand != 0):

left, top, right, bottom = win32gui.GetWindowRect(hand)

return{'hand': hand, 'left': left, 'top': top, 'right': right, 'bottom': bottom}

else:

print("找不到[%s]这个人/群" % titlename)

return 0

# 发送消息,需要窗口标题,消息内容两个参数, 第三个可选,如果值true,就是发送QQ(Tim)消息,否则是微信消息

def send(windowTitle, message, isqq=0):

# 微信pc端的输入框都没有句柄,所以需要通过模拟点击来获得焦点.虽然QQ有句柄,但是为了统一,也用模拟点击吧

# 定位QQ(tim)窗口输入框位置,模拟鼠标点击来获得焦点。

if(isqq):

winClass = "TXGuiFoundation" # 如果指明是QQ消息,那就发QQ消息。这里用的是TIM,如果是QQ消息的话,可以用None代替,或者自己用spy++查找

else:

winClass = "ChatWnd" # 默认是微信消息

win = findWindow(winClass, windowTitle)

if(win):

win32gui.SetForegroundWindow(win['hand'])

time.sleep(0.002) # 这里要缓一下电脑才能反应过来,要不然可能找不到焦点

inputPos = [win['right']-50, win['bottom']-50]

win32api.SetCursorPos(inputPos) # 定位鼠标到输入位置

# win32gui.SendMessage

# 执行左单键击,若需要双击则延时几毫秒再点击一次即可

mouse.press(Button.left)

mouse.release(Button.left)

keyboard.type(message) # 程序运行时候,这里一定要是英文输入状态,要不然可能无法发送消息

# 发送消息的快捷键是 Alt+s

with keyboard.pressed(Key.alt):

keyboard.press('s')

keyboard.release('s')

else:

print("发送消息给[%s]失败" % windowTitle)

# 发送QQ消息,这里默认使用 TIM

def qqsend(windowTitle, message):

win = findWindow("TXGuiFoundation", windowTitle)

if(win):

clipboard.OpenClipboard()

clipboard.EmptyClipboard()

clipboard.SetClipboardData(win32con.CF_UNICODETEXT, message)

clipboard.CloseClipboard()

# 填充消息

win32gui.SendMessage(win['hand'], 770, 0, 0)

# 回车发送消息

win32gui.SendMessage(win['hand'], win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

else:

print("发送消息给[%s]失败" % windowTitle)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。