使用Python脚本自动发送个性化微信消息通知

需求:

需要向单位同事定期(每周一次)发送每个人的业务情况提醒,同时也要发送新的登录token。如果采用邮件大家也不常看,提醒效果很差,同时邮件传输非常不安全,单位很多人邮箱默认密码不改,用来发送登录token不合适。这里采用了微信方式

1.数据表设计

CREATE TABLE [t_members] ([id] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[NickName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[GroupName] [char] (30) COLLATE Chinese_PRC_CI_AS NULL ,[wxEnabled] [bit] NOT NULL CONSTRAINT [DF_t_members_wxEnabled] DEFAULT (1),[wxName] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[roleID] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[token] [char] (40) COLLATE Chinese_PRC_CI_AS NULL ,[tokenDate] [datetime] NULL CONSTRAINT [DF_t_members_tokenDate] DEFAULT (0),[tokenUsedTimes] [int] NOT NULL CONSTRAINT [DF_t_members_tokenUsedTimes] DEFAULT (0),[loginTimes] [int] NOT NULL CONSTRAINT [DF_t_members_loginTimes] DEFAULT (0),[lastLogin] [datetime] NULL 
) ON [PRIMARY]
GO

以上是一个用户的表,其中

【Name】:实际姓名,比如“张三”;

【NickName】:称呼,比如张三可以称为“张主任”、“老张”,人性化一点;

【wxName】:自己的微信中大家的名字,用于脚本中搜索使用。这里如果自己在这个数据库中的话要把自己的wxName设置为“文件传输助手”;

【GroupName】:分组信息,用于区分不同的业务组,发的消息内容可能不同;

其他的字段不大相关,不说了,,,

2.发送脚本

# 引入pyautogui模块以操作快捷键
import pyautogui
# 引入pyperclip模块以操作剪切板
import pyperclip
from datetime import datetime
import timeHotkeyDelay = 1
targets = ["文件传输助手","王五","张三","李四"]
msgs = ["自己你好!testTXT1","小王你好!testTXT2","张主任你好!testTXT3","李四你好!testTXT4"]
def sendWxMessages(targets, msgs):try:# 打开微信窗pyautogui.hotkey("ctrl", "alt", "w")time.sleep(HotkeyDelay)i = 0while i < len(targets):# 清空剪切板并将目标写入到剪切板target = targets[i]pyperclip.copy("")pyperclip.copy(target)# 使用快捷键ctrl+f定位到微信搜索栏pyautogui.hotkey("ctrl", "f")time.sleep(HotkeyDelay)# 使用快捷键ctrl+v将目标粘贴到微信搜索栏,微信将自动搜索pyautogui.hotkey("ctrl", "v")time.sleep(HotkeyDelay)# 按回车键打开搜索出的目标pyautogui.press("enter")time.sleep(HotkeyDelay)# 清空剪切板并将未点检信息写入到剪切板msg = msgs[i]pyperclip.copy("")pyperclip.copy(msg)# 使用快捷键ctrl+v将信息粘贴到微信输入框,按回车发送消息pyautogui.hotkey("ctrl", "v")time.sleep(HotkeyDelay)#以下行可以注释掉用于测试所有人是否找到pyautogui.press("enter")i += 1                except Exception as ex:# logWriter("发送微信消息出现异常: " + str(ex))print("发送微信消息出现异常")# sys.exit(0)curr_time = datetime.now()
print(curr_time)
sendWxMessages(targets, msgs)
curr_time2 = datetime.now()
print("执行时间", curr_time2-curr_time)

以上脚本从(利用Python发送微信消息的方法_python实现微信发送消息-CSDN博客)改写

其中 pyautogui.press("enter") 这句可以注释掉以试试搜索效果。

3.生成发送内容

这个简单,根据业务特点和人员表生成如下数组的字符串,拷贝至python中替换运行即可。

targets = ["文件传输助手","王五","张三","李四"]
msgs = ["自己你好!testTXT1","小王你好!testTXT2","张主任你好!testTXT3","李四你好!testTXT4"]

总结

这种方法以自己的微信向大家发送个性化的消息,一来提醒效果好,二来安全,同时可能也体现了一种尊重。当HotkeyDelay = 1时,发送80个左右消息耗时约6分钟,这段时间不能进行屏幕操作。

后面可能会生成发送内容文件作为中介,将以上脚本改为从文件中读取发送内容,省的老是要打开python开发工具了。

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

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

相关文章

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务&#xff1b; 2、调优自己的大模型&#xff1b; 选型 采用通义千问模型&#xff0c;https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库&#xff1a;https://www.modelscope.cn/models mkdir -p /data/…

微信小程序中组件内生命周期如何调用组件内方法

在组件的.js文件中使用 Component({/*** 组件的属性列表*/properties: {},/*** 组件的初始数据*/data: {},/*** 组件的方法*/methods:{async getData() {},},/*** 组件的生命周期*/lifetimes:{// 在组件实例进入页面节点树时执行attached:function(){this.getData() //调用}} …

JavaScript-数组-笔记

1.定义数组 数组&#xff1a; 可以存储任意数据类型&#xff0c;元素之间使用英文逗号隔开 1&#xff09;使用new关键字定义数组 var 变量名 new Array() &#xff1b;定义空数组 var 变量名 new Array(数据1&#xff0c;数据2) &#xff1b; 定义有元素的数组 注意&#xff…

Jmeter 性能 —— 吞吐量与并发用户数关系!

1、吞吐量和并发用户数的关系 2、已知在线用户数为3000&#xff0c;算出对应的并发用户数 ①我们常用的确定并发用户数的公式是&#xff1a; C活动用户数操作时间/系统运行时间 如每天最大在线用户数为3000人&#xff0c;每个用户平均操作时间为1小时&#xff0c;系统运行时…

【后退N帧协议】- 协议应用与局限分析

后退N帧协议是计算机网络通信中常用的一种流量控制协议&#xff0c;用于确保数据的可靠传输。本文将深入探讨后退N帧协议的原理、应用场景及局限性。 后退N帧协议的核心思想是在发送端发送数据时&#xff0c;等待接收端返回的确认信号。发送端每次发送N帧数据&#xff0c;并等…

零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇

零基础学Python网络爬虫案例实战 全流程详解 入门与提高篇 零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇 编辑推荐 本书讲解了Python爬虫技术的高级进阶知识&#xff0c;帮助有一定爬虫基础的读者进一步提高爬虫技术。本书详解了突破反爬机制的常用手段以及Scrapy和…

基于SSM+Vue的学校社团管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

工业相机——靶面尺寸、像元尺寸、分辨率 、传感器尺寸

文章目录 1 靶面尺寸、像元尺寸、分辨率2 相机传感器的感光区尺寸规格1 靶面尺寸、像元尺寸、分辨率 工业相机基本知识理解:靶面尺寸、像元尺寸、分辨率 1、靶面尺寸:由Sensor对角线长度表示,单位英寸,这里的1英寸=16mm 2、像元尺寸:单个感光元件的大小,一般都是正方形…

C# OpenCvSharp DNN FreeYOLO 人脸检测人脸图像质量评估

目录 效果 模型信息 yolo_free_huge_widerface_192x320.onnx face-quality-assessment.onnx 项目 代码 frmMain.cs FreeYoloFace FaceQualityAssessment.cs 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测&人脸图像质量评估 效果 模型信息 yolo_free_huge_widerfa…

Qt隐式共享浅析

一、什么是隐式共享 Qt 的隐式共享&#xff08;implicit sharing&#xff09;机制是一种设计模式&#xff0c;用于在进行数据拷贝时提高效率和减少内存占用。 在 Qt 中&#xff0c;许多类&#xff08;如 QString、QList 等&#xff09;都使用了隐式共享机制。这意味着当这些类…

色标在matplotlib和plottable中

是这样的&#xff0c;我有一个数组[-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, 6.4, 12.3]&#xff0c;它需要绘制散点图&#xff0c;点的颜色来代表数值大小&#xff1b;同时&#xff0c;也需要在plottable上作为一列显示&#xff0c;同样用颜色来代表数值的大小…

HarmonyOS应用开发学习笔记 ArkTS 布局概述

一、布局概述 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中&#xff0c;需要遵守以下流程保证整体的布局效果 确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大小约束。 二…

【JUC】进程和线程

目录 &#x1f4e2;什么是进程?&#x1f3a1;什么是线程?&#x1f680;进程和线程的区别?&#x1f3a2;Java 线程和操作系统的线程有啥区别&#xff1f;&#x1f396;️JDK21的虚拟线程&#x1f3af;虚拟线程和平台线程的对比 &#x1f4e2;什么是进程? 进程是程序的一次执…

Zabbix“专家坐诊”第223期问答汇总

来源&#xff1a;乐维社区 问题一 Q&#xff1a;Zabbix 5.0安装完mysql之后怎么备份&#xff1f;忘记mysql当时创建的密码了&#xff0c;怎么样能查看设置的密码&#xff1f; A&#xff1a;mysql初始化密码在 /var/log/mysqld.log中可以看到&#xff0c;搜关键字temporary pas…

Android studio TabHost应用设计

一、xml布局文件: 添加TabHost控件 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.…

【算法分析与设计】移动零

题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0…

电能计量芯片RN8209

电能计量芯片RN8209 简介2、操作2.1、复位2.2 模数转换2.3 有功功率2.4 无功功率2.5 有效值2.4 能量计算 RN8209中文手册 点击下载 简介 2、操作 2.1、复位 2.2 模数转换 2.3 有功功率 RN8209 提供两路有功功率的计算和校正&#xff0c;分别为电流 A 和电压有功功率计算和校正…

【笔记------freemodbus】一、stm32的裸机modbus-RTU从机移植(HAL库)

freemodbus的官方介绍和下载入口&#xff0c;官方仓库链接&#xff1a;https://github.com/cwalter-at/freemodbus modbus自己实现的话往往是有选择的支持几条指令&#xff0c;像断帧和异常处理可能是完全不处理的&#xff0c;用freemodbus实现的话要简单很多&#xff0c;可移植…

Linux Lha命令教程:学习如何管理.lzh文件(附案例详解和注意事项)

Linux lha命令介绍 lha&#xff08;LHarc&#xff09; 是一种用于文件压缩和解压缩的工具&#xff0c;广泛应用在多个系统中&#xff0c;包括 Windows 和 Linux。利用此命令&#xff0c;用户可以方便地管理 .lzh 或 .lha 文件。它支持多种压缩算法&#xff0c;包括LZH、LZ5、L…

【leetcode100-033】【链表】排序链表

【题干】 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 【思路】 递归版归并法链表版&#xff5e;没什么特别好说的&#xff08;非递归版归并也是可以哒&#xff0c;但是马上要考试了今天懒得写了&#xff01;打个flag在这里也许哪天想起来…