需要向单位同事定期(每周一次)发送每个人的业务情况提醒,同时也要发送新的登录token。如果采用邮件大家也不常看,提醒效果很差,同时邮件传输非常不安全,单位很多人邮箱默认密码不改,用来发送登录token不合适。这里采用了微信方式
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】:分组信息,用于区分不同的业务组,发的消息内容可能不同;
其他的字段不大相关,不说了,,,
# 引入pyautogui模块以操作快捷键
import pyautogui
# 引入pyperclip模块以操作剪切板
import pyperclip
from datetime import datetime
import time
HotkeyDelay = 1
targets = ["文件传输助手","王五","张三","李四"]
msgs = ["自己你好!testTXT1",
"小王你好!testTXT2",
"张主任你好!testTXT3",
"李四你好!testTXT4"]
def sendWxMessages(targets, msgs):
try:
# 打开微信窗
pyautogui.hotkey("ctrl", "alt", "w")
time.sleep(HotkeyDelay)
i = 0
while 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") 这句可以注释掉以试试搜索效果。
这个简单,根据业务特点和人员表生成如下数组的字符串,拷贝至python中替换运行即可。
targets = ["文件传输助手","王五","张三","李四"]
msgs = ["自己你好!testTXT1",
"小王你好!testTXT2",
"张主任你好!testTXT3",
"李四你好!testTXT4"]
这种方法以自己的微信向大家发送个性化的消息,一来提醒效果好,二来安全,同时可能也体现了一种尊重。当HotkeyDelay = 1时,发送80个左右消息耗时约6分钟,这段时间不能进行屏幕操作。
后面可能会生成发送内容文件作为中介,将以上脚本改为从文件中读取发送内容,省的老是要打开python开发工具了。