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

废话少说,先上代码:

# 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或者微信消息相关推荐

  1. python qq自动发消息软件_Python之qq自动发消息的示例代码

    准备:pip install win32gui 可能遇到的麻烦: No module named 'win32gui' 的解决方法(踩坑之旅) 源码: import win32gui import w ...

  2. python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)

    大家好,并发编程进入第四篇. 本文目录 前言 Event事件 Condition Queue队列 总结 .前言 前面我已经向大家介绍了,如何使用创建线程,启动线程.相信大家都会有这样一个想法,线程无非 ...

  3. QQ支持微信登录,手机QQ与微信联手!

    手机QQ支持微信登录了,今天看到有网友说,QQ现在可以用微信登录了,立马登录QQ去看看,果不其然,在登录方式那里选择添加账号,选择微信登录,就可以了. 记得最早的时候,微信是可以用QQ号登录的,目的也 ...

  4. html qq消息弹窗提醒,能不能让QQ消息不再讨厌 QQ HD mini消息弹窗提醒的优化方案...

    随着用户对体验的要求越来越高,手机QQ消息的弹窗似乎对用户有着隐形的骚扰,手机QQ现在已经是一款很成熟的产品了. 但是在使用时,你一定有这样的感觉:不想错过某人的消息,但又有其他的消息在干扰,一遍又一 ...

  5. python发送文件给微信好友_Python定时自动给微信好友发送天气预报

    效果图 from wxpyimport * import requests from datetimeimport datetime import time from apscheduler.sche ...

  6. python发html邮件_python 发送html邮件

    简单的python发送html邮件代码,如下:#!/usr/bin/env python #-*- coding:utf-8 -*- import smtplib from email.header ...

  7. python 发邮件 抄送_Python发送email的3种方法

    python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送 ...

  8. python发邮件附件_python 发送带附件的邮件

    class Carry_files_EmailSender(object): def __init__(self): self.smtp_host = smtp_host # 发送邮件的smtp服务器 ...

  9. python 入参格式_Python发送post请求的三种入参-文件、base64、普通入参

    作者:cao.dingzheng post是常见的http请求方式之一,而post常见的http请求入参方式一般有文件入参.包含base64编码的json入参.普通入参.这里就针对这三种常见入参方式进 ...

最新文章

  1. Nature出炉「中国博士生图鉴」:过半学生想换领域换导师,40%学生受抑郁、焦虑困扰...
  2. 深入分析ReentrantLock公平锁和非公平锁的区别 (转)
  3. Sentinel Go 0.4.0 发布,支持热点流量防护能力
  4. Linux中的mysql.redis
  5. linux centos更换用户名和密码忘记了,centos7系统中忘记root管理员账号密码,怎么修改密码的解决方式...
  6. java 线程访问控件_多线程下访问控件的方式
  7. Python经典编程习题100例,供初学者学习
  8. 手机ttf楷体文件_楷体繁体ttf 手机楷体字体ttf
  9. 华为2019年4月10日春招笔试题解
  10. 基站机房防雷接地解决方案
  11. cmake:cmake_minimum_required命令
  12. MATLAB及Simulink----基本知识简介
  13. ESP8266 下 OTA 更新 Firmware 和FileSystem
  14. NOIP2017大总结
  15. IOS:UIImage的剪切,尺寸缩小、压缩、添加水印
  16. 性能测试:一个完整的性能测试过程
  17. The requested resource is not available.
  18. 分布式-Java应用
  19. 孝经白话:卿大夫章第四
  20. 项立刚:乔布斯展现了人类无尽的创造力

热门文章

  1. CCF201509试题
  2. 杭电OJ分类题目(2)
  3. 51Nod-1004 n^n的末位数字【快速模幂】
  4. 扩展欧几里得算法与模乘逆元的程序
  5. Python 标准库 —— 邮件(email)与邮件服务器(smtplib)
  6. 圆周率 π 的研究、π 的等式
  7. 用几何(解析几何)方法求解概率问题
  8. 图像(帧)分块机制(patch mechanism)
  9. 机器学习基础(四十四)—— 优化
  10. BP神经网络——如何进行权值的初始化