python-qq定时自动消息发送

预设

qq需要可以enter发送消息

发qq表情代码需要开启快捷表情

import sys
import win32gui
import win32con
import win32clipboard as w
import win32api
import time
import subprocess
import datetime
import webbrowser
import tkinter as tk
vb_file_path = "./openQQ.vbs"
def run_vb_script():subprocess.run(['cscript', vb_file_path])# 消息内容
msg = 'ƣ'
qName = 'chn'
uin =''
timeDate = ''
temp=True
#复制操作
def send_msg(name,mes,uin):url = "tencent://message/?uin=" + uinwebbrowser.open(url)time.sleep(1)# 获取窗口句柄handle = win32gui.FindWindow(None, name)# 将 QQ 窗口设置为活动窗口win32gui.SetForegroundWindow(handle)# 将测试消息放到剪贴板w.OpenClipboard()w.EmptyClipboard()print(mes)time.sleep(1)w.SetClipboardData(win32con.CF_UNICODETEXT, mes)w.CloseClipboard()# 通过剪贴板填充消息win32gui.SendMessage(handle, win32con.WM_PASTE, 0, 0)# 模拟按下 Enter 键win32api.keybd_event(win32con.VK_RETURN, 0, 0, 0)time.sleep(0.1)# 模拟释放 Enter 键win32api.keybd_event(win32con.VK_RETURN, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(0.1)# 释放 QQ 窗口的焦点win32gui.ReleaseCapture()
#执行
def runTime():print(778, qName, timeDate)global tempwhile temp:time_now = datetime.datetime.now().strftime("%Y%m%d%H%M")  # 刷新if time_now == timeDate:  # 设置要执行的时间send_msg(qName,msg,uin)print(77,qName, timeDate)temp = Falseelse:print("等待",timeDate)time.sleep(3)
#赋值
def setData(e1,e2,e3,e4):global msgglobal qNameglobal timeDateglobal uinmsg = e3timeDate = e1qName =e2uin =e4#弹窗操作
def run_tk():# 创建弹窗popup = tk.Tk()popup.wm_title("输入弹窗")#第一个输入框label1 = tk.Label(popup, text="输入执行时间:")label1.pack()e1 = tk.Entry(popup)e1.pack()# 第二个输入框label2 = tk.Label(popup, text="输入窗口名称:")label2.pack()e2 = tk.Entry(popup)e2.pack()# 第二个输入框label3 = tk.Label(popup, text="输入qq号:")label3.pack()e3 = tk.Entry(popup)e3.pack()# 第三个输入框label4 = tk.Label(popup, text="输入发送内容:")label4.pack()e4 = tk.Entry(popup)e4.pack()def get_input():setData(e1.get(), e2.get(), e4.get(), e3.get())popup.destroy()  # 关闭弹窗runTime()submit_button = tk.Button(popup, text="提交", command=get_input)  # 创建提交按钮submit_button.pack()  # 将按钮放到窗口里popup.mainloop()run_tk()
sys.exit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索迷宫的奥秘:用 C++ 打造你的迷宫游戏之旅!

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

面试官:重量级锁的8连问,你能接住几个?

前言 接上一篇偏向锁的十连问,继续升级到重量级锁的进阶版,检验一下自己离精通重量级锁还有多远。建议在读之前了解下Java中重量级锁的实现原理。 重量级锁的ObjectMonitor和JUC中的AQS有什么异同 为什么ObjectMonitor需要cxq和entryList两个等待队列 …

AUTOSAR_EXP_ARAComAPI的5章笔记(15)

☞返回总目录 相关总结:AutoSar AP CM服务接口级别的数据类型总结 5.5 服务接口级别的数据类型 以下章节描述了在ara::com中服务接口用户定义数据类型的 C 语言映射。这里的 “用户定义” 是指那些不是由ara::com API 定义(例如InstanceIdentifier、F…

2024前端面试题-1.自我介绍+常见考点汇总

一、自我介绍模板 个人信息教育背景工作经验技能专长优势特点 (注:括号)内的内容可视具体情况决定说不说。以下内容仅为个人想法,仅供参考交流,不喜勿喷,感谢留情~* 1、个人信息: 姓名&…

Leetcode 3325. Count Substrings With K-Frequency Characters I

Leetcode 3325. Count Substrings With K-Frequency Characters I 1. 解题思路2. 代码实现 题目链接:3325. Count Substrings With K-Frequency Characters I 1. 解题思路 这一题思路上就是一个滑动窗口。 我们考察窗口的左边界依次为0到n-1时右边界能够取到的最…

数据结构编程实践20讲(Python版)—19字典树

本文目录 19 字典树(Trie)S1 说明字典树结构字典树的构建与查找字典树的特点字典树的应用领域 S2 示例S3 应用1:基于 big.txt 实现单词的自动补全功能S3 应用2:实现 IP 路由中的最长前缀匹配S3 应用3:基于 Trie 的压缩…

THP4 SOP16 芯片 高速光耦芯片

光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流,由受光器输出端引出,这样就实现了电一光一电的转换。 由于光耦合器输入输出间互相…

防火墙和堡垒机有什么区别?

防火墙和堡垒机在网络安全领域都扮演着至关重要的角色,但它们在功能、部署位置、作用范围等方面存在显著差异。 一、功能定位 防火墙:防火墙是一种网络安全系统,主要作用是在私有网络与公网之间建立一道安全屏障,监控和控制网络流量。它通过预定义的安全规则,决定哪些数…

5g工业路由器最新案例:高原气象站网络升级项目

背景: 某省气象局决定在高原地区升级其气象观测网络,以提高天气预报的准确性和及时性,同时为气候变化研究提供更可靠的数据支持。该项目面临以下挑战: 需要在高原广袤且地形复杂的区域部署大量自动气象站,要求网络覆…

【Excel】【VB和JS】表格内容姓名、卡号、身份证敏感信息转换为图片打印

VB代码: Function ConvertCellToImageAndPlace(n As Long, m As Long)Dim sourceCell As RangeSet sourceCell Sheets("Sheet2").Cells(n, m)sourceCell.CopyPicture Appearance:xlScreen, Format:xlPictureDim targetCell As RangeSet targetCell She…

优化SQL查询的最佳实践:提升数据库性能的关键

SQL 查询是数据库操作的核心,特别是当数据量庞大时,性能问题尤为明显。优化 SQL 查询不仅能减少响应时间,还能提高系统整体的可伸缩性。本文将从索引、查询结构、数据库设计和缓存等方面详细介绍如何优化 SQL 查询以提升性能。 一、索引的使…

kotlin 中 ::class ::class.java 和 .javaClass 区别

在 Kotlin 中,获取一个类的类对象(Class 对象)有几种不同的方式,包括 ::class、::class.java 和 .javaClass。每种方式都有其特定的用途和适用场景。下面是对这三种方式的详细解释: ::class 用途:获取 Kotl…

Java配置 Redis 连接互斥锁或队列预先加载缓存

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

【HuggingFace 如何上传数据集 (2) 】国内网络-稳定上传图片、文本等各种格式的数据

【HuggingFace 下载】diffusers 中的特定模型下载,access token 使用方法总结【HuggingFace 下载中断】Git LFS 如何下载指定文件、单个文件夹?【HuggingFace 如何上传数据集】快速上传图片、文本等各种格式的数据 上文的方法因为是 https 协议&#xf…

CIM系统:智慧城市的数字基石

计算机集成制造系统(CIM)是智慧城市建设中的关键技术,它通过集成多种信息技术,为城市提供一个全面的数字化镜像。CIM系统不仅涉及建筑信息模型(BIM)、地理信息系统(GIS)、物联网&…

1024-过去一年的总结

目录 前言 (10月-24.01)故事的开始 (2月-7月)漫长的学习与探索 (8月-现在)低谷期 自我审视 前言 1024在即,就借此机会讲一讲过去一年的经历,也算是全方位总结一下自己 (10月-24.01)故事的开始 那就从去年大一入学…

前端优化:从Vue/React/Svelte的数组更新->渲染策略剖析数组大列表数据展示优化策略

在现代前端框架中,数组的渲染是一个重要的功能。不同的框架在处理数组的操作(如新增、删除和更新)时有不同的实现方式和优化手段。本文将对比 Vue、React 和 Svelte 在数组渲染方面的特点,并讨论其优缺点,特别是与直接…

【C++】STL——priority_queue优先级队列

目录 前言priority_queue的使用简单使用在OJ中的使用 priority_queue的模拟实现基本功能仿函数在这里插入图片描述 前言 上一节我们说了stack和queue这两种容器适配器,而priority_queue(优先级队列)同样也是属于容器适配器,它会优…

使用Python在Jupyter Notebook中显示Markdown文本

使用Python在Jupyter Notebook中显示Markdown文本 引言1. 导入必要的模块2. 定义一个函数来显示Markdown文本3. 使用print_md函数显示Markdown文本4. 总结 引言 作为一名Python初级程序员,你可能已经熟悉了Jupyter Notebook这个强大的工具。Jupyter Notebook不仅支…

【Fargo】9:模拟图片采集的内存泄漏std::bad_alloc

std::bad_alloc 崩溃。这样的内存分配会导致内存耗尽 is simulating an image of size 640x480 with 3 bytes per pixel, resulting in an allocation of approximately 921,600 bytes (or around 900 KB) for each image. The error you’re encountering (std::bad_alloc) ty…