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)
python发送微信消息_python 发送QQ或者微信消息相关推荐
- python qq自动发消息软件_Python之qq自动发消息的示例代码
准备:pip install win32gui 可能遇到的麻烦: No module named 'win32gui' 的解决方法(踩坑之旅) 源码: import win32gui import w ...
- python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)
大家好,并发编程进入第四篇. 本文目录 前言 Event事件 Condition Queue队列 总结 .前言 前面我已经向大家介绍了,如何使用创建线程,启动线程.相信大家都会有这样一个想法,线程无非 ...
- QQ支持微信登录,手机QQ与微信联手!
手机QQ支持微信登录了,今天看到有网友说,QQ现在可以用微信登录了,立马登录QQ去看看,果不其然,在登录方式那里选择添加账号,选择微信登录,就可以了. 记得最早的时候,微信是可以用QQ号登录的,目的也 ...
- html qq消息弹窗提醒,能不能让QQ消息不再讨厌 QQ HD mini消息弹窗提醒的优化方案...
随着用户对体验的要求越来越高,手机QQ消息的弹窗似乎对用户有着隐形的骚扰,手机QQ现在已经是一款很成熟的产品了. 但是在使用时,你一定有这样的感觉:不想错过某人的消息,但又有其他的消息在干扰,一遍又一 ...
- python发送文件给微信好友_Python定时自动给微信好友发送天气预报
效果图 from wxpyimport * import requests from datetimeimport datetime import time from apscheduler.sche ...
- python发html邮件_python 发送html邮件
简单的python发送html邮件代码,如下:#!/usr/bin/env python #-*- coding:utf-8 -*- import smtplib from email.header ...
- python 发邮件 抄送_Python发送email的3种方法
python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送 ...
- python发邮件附件_python 发送带附件的邮件
class Carry_files_EmailSender(object): def __init__(self): self.smtp_host = smtp_host # 发送邮件的smtp服务器 ...
- python 入参格式_Python发送post请求的三种入参-文件、base64、普通入参
作者:cao.dingzheng post是常见的http请求方式之一,而post常见的http请求入参方式一般有文件入参.包含base64编码的json入参.普通入参.这里就针对这三种常见入参方式进 ...
最新文章
- Nature出炉「中国博士生图鉴」:过半学生想换领域换导师,40%学生受抑郁、焦虑困扰...
- 深入分析ReentrantLock公平锁和非公平锁的区别 (转)
- Sentinel Go 0.4.0 发布,支持热点流量防护能力
- Linux中的mysql.redis
- linux centos更换用户名和密码忘记了,centos7系统中忘记root管理员账号密码,怎么修改密码的解决方式...
- java 线程访问控件_多线程下访问控件的方式
- Python经典编程习题100例,供初学者学习
- 手机ttf楷体文件_楷体繁体ttf 手机楷体字体ttf
- 华为2019年4月10日春招笔试题解
- 基站机房防雷接地解决方案
- cmake:cmake_minimum_required命令
- MATLAB及Simulink----基本知识简介
- ESP8266 下 OTA 更新 Firmware 和FileSystem
- NOIP2017大总结
- IOS:UIImage的剪切,尺寸缩小、压缩、添加水印
- 性能测试:一个完整的性能测试过程
- The requested resource is not available.
- 分布式-Java应用
- 孝经白话:卿大夫章第四
- 项立刚:乔布斯展现了人类无尽的创造力