Python实现微信自动发送消息

目标:

①Python定时发送微信消息;

②Python实时发送微信消息。

使用键位编码win32api、win32con
或者send_keys实现发送微信消息。

首先以win32api、win32con为例:

"""
实现定时自动发送消息
"""import time
import pyperclip
import win32api
import win32con
import oswhile True:time_now = time.strftime("%H:%M:%S", time.localtime())  # 获取当前时间sent_time = '16:57:34'  # 发送时间if time_now == sent_time:  # 当前时间等于发送时间则执行以下程序def open_app(app_dir):os.startfile(app_dir)# 打开微信if __name__ == "__main__":app_dir = r'C:\Program Files (x86)\Tencent\WeChat\WeChat.exe'  # 此处为微信的绝对路径open_app(app_dir)time.sleep(1)  #进入微信,模拟按键Ctrl+Fwin32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(70, 0, 0, 0)  # Fwin32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(70, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)# 复制需要查找的人,按回车,进入聊天输入框pyperclip.copy('请输入你需要聊天的联系人')  # 联系人昵称spam = pyperclip.paste()win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(86, 0, 0, 0)  # 86→V;win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)win32api.keybd_event(13, 0, 0, 0)  # 13→Enterwin32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)#聊天输入框复制聊天内容,然后按回车发送消息pyperclip.copy('Hello~')  # 聊天的内容spam = pyperclip.paste()win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(86, 0, 0, 0)  # 86→Vwin32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(13, 0, 0, 0)win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)  # 确保程序只执行一次,防止重复执行pyperclip.copy('是时候点餐啦!!')  # 聊天的内容spam = pyperclip.paste()win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(86, 0, 0, 0)  # 86→Vwin32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(13, 0, 0, 0)win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(3)exit() # 退出程序

运行结果:

 实时发送消息:

"""
实时自动发送消息
"""import time
import pyperclip
import win32api
import win32con
import osi=0;
while i<1:i = i + 1;time_now = time.strftime("%H:%M", time.localtime())  # 获取当前时间sent_time = time.strftime("%H:%M", time.localtime())  # 发送时间if time_now == sent_time:  # 当前时间等于发送时间则执行以下程序def open_app(app_dir):os.startfile(app_dir)if __name__ == "__main__":app_dir = r'C:\Program Files (x86)\Tencent\WeChat\WeChat.exe'  # 此处为微信的绝对路径open_app(app_dir)time.sleep(1)  # 电脑反应需要时间,使程序暂停一段时间来等待电脑反应,单位是秒win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(70, 0, 0, 0)  # Fwin32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(70, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)pyperclip.copy('请输入联系人')  # 联系人spam = pyperclip.paste()win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(86, 0, 0, 0)  # 86→V;  67→Cwin32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)win32api.keybd_event(13, 0, 0, 0)  # 13→Enterwin32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)pyperclip.copy('Hello~')  # 聊天的内容spam = pyperclip.paste()win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(86, 0, 0, 0)  # 86→Vwin32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(13, 0, 0, 0)win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)  # 确保程序只执行一次,防止重复执行pyperclip.copy('是时候点餐啦!!')  # 聊天的内容spam = pyperclip.paste()win32api.keybd_event(17, 0, 0, 0)  # Ctrlwin32api.keybd_event(86, 0, 0, 0)  # 86→Vwin32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(13, 0, 0, 0)win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(5)  # 确保程序只执行一次,防止重复执行else:print('停止运行!!')exit()

Python中模拟键盘输入键位编号对照表_baidu_17201253的博客-CSDN博客

发现另外一种更简单的方式,引用send_keys: 

"""
实现自动发送消息
"""import time
import os
from pywinauto.keyboard import send_keys #键盘while True:time_now = time.strftime("%H:%M:%S", time.localtime())  # 获取当前时间sent_time = time.strftime("%H:%M:%S", time.localtime())  # 发送时间if time_now == sent_time:  # 当前时间等于发送时间则执行以下程序def open_app(app_dir):os.startfile(app_dir)# 打开微信if __name__ == "__main__":app_dir = r'C:\Program Files (x86)\Tencent\WeChat\WeChat.exe'  # 此处为微信的绝对路径open_app(app_dir)time.sleep(1)#进入微信,模拟按键Ctrl+Fsend_keys('^f')send_keys('请输入联系人')time.sleep(1)send_keys('{ENTER}') # 回车键必须全部大小#需要发送的消息内容message = '啦啦!!,是时候休息啦!Good night!!!'time.sleep(1)# 输入聊天内容send_keys(message)# 回车发送消息send_keys('{ENTER}')time.sleep(3)print('退出~~~')exit() # 退出程序
from pywinauto.application import Application
from pywinauto.keyboard import send_keys
import time
import psutil# 输入进程名,获取PID
def get_pid(p_name):pids = psutil.pids()for pid in pids:p = psutil.Process(pid)if p_name in p.name():return pidchat_name = "测试微信群"  # 需要发送消息的聊天名称
message = "message"  # 需要发送的消息
we_chat_path = r"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"  # 微信路径  C:\Program Files (x86)\Tencent\WeChat# 获取微信PID并获取微信窗口
we_chat_id = get_pid("WeChat.exe")
app = Application(backend='uia').connect(process=we_chat_id)
we_chat_main_dialog = app.window(class_name='WeChatMainWndForPC')# 微信挂在后台时,通过再次运行唤醒
if not we_chat_main_dialog.exists():tmp = Application().start(we_chat_path)# 通过先最小化,再恢复使得窗口置顶
we_chat_main_dialog.minimize()
we_chat_main_dialog.restore()# 通过搜索,定位聊天
search_elem = we_chat_main_dialog.child_window(control_type='Edit', title='搜索')
search_elem.click_input()
search_elem.type_keys('^a').type_keys(chat_name)
time.sleep(1)
send_keys('{ENTER}')# 点击要发送消息的聊天
chat_list = we_chat_main_dialog.child_window(control_type='List', title='会话')
for chat_item in chat_list.items():if chat_name in chat_item.element_info.name:chat_item.click_input()time.sleep(1)# 获取聊天记录
message_list = we_chat_main_dialog.child_window(control_type='List', title='消息')
for message_item in message_list.items():print(message_item)# 输入并发送消息# app["Dialog"]["Edit1"].TypeKeys("E:\\1.jpg")
# app["Dialog"]["Edit1"].TypeKeys("C:\\Users\\Administrator\\Desktop\\用印申请.pdf")
edit_elem = we_chat_main_dialog.child_window(control_type='Edit', title='输入')
edit_elem.type_keys('^a').type_keys(message, with_spaces=True)
time.sleep(1)
send_keys('{ENTER}')

 仅用于学习,请勿用于刷屏!!!

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

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

相关文章

2020年中国数字阅读产品营销洞察报告

全民阅读七入政府工作报告&#xff0c;数字阅读行业乘政策东风。数字阅读行业市场规模2020年预计突破200亿&#xff0c;彰显数字阅读平台具有较高的媒体价值。同时&#xff0c;数字阅读用户规模突破4亿&#xff0c;用户使用时长波动式增长&#xff0c;对平台黏性高。 数字阅读…

数据驱动的互联网营销和运营专用名词速览

来源&#xff1a;网站分析在中国 数据猿官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云云社区 最基本的名词&#xff08;14个&#xff09; Ads&#xff1a;就是广告&#xff08;名词…

Day06-数据分析在各行各业的应用与数据思维

数据分析在各行各业的应用 数据分析在各行各业的应用 计算机、金融、财务会计、医药专业、艺术专业、语言类专业、法律专业、设计、电商 相信很多人都听到过不少次数据分析这一词&#xff0c;而数据分析这个次近几年来随着互联网的快速发展&#xff0c;成为商业世界中的流行语…

广告营销用户点击预测分析

广告营销用户点击预测分析 零、数据集以及数据集简介以及任务分析一、数据预处理1、加载检查数据&#xff08;1&#xff09;特殊特征&#xff08;2&#xff09;特殊特征的处理&#xff08;3&#xff09;特殊特征处理后生成的新特征 2、数据类型与缺失值处理&#xff08;1&#…

雅思阅读真经总纲_雅思天团集训课流程介绍

欢迎宝宝们来到我们为期7天的雅思天团集训营&#xff0c;下面来给大家介绍一下这7天你将如何度过~ 课程简介及课前准备 本次课程时间为7天&#xff0c;第一天需要同学们提早到场进行签到&#xff0c;最后一天还给同学们安排了有关留学的讲座&#xff0c;为大家介绍2021年留学政…

全渠道数字化营销平台

01 互联网行业背景 在数字经济时代&#xff0c;用户面临的消费场景和沟通场景都更加碎片化。因此&#xff0c;企业急需一款数字化营销工具打造属于自己的用户数据池&#xff0c;深入整合、挖掘现有数据&#xff0c;以更高效、更个性化的方式进行营销活动&#xff0c;实现与用户…

数字化营销服务-如何进行数字化营销?

1、数字营销服务&#xff1a;如何进行数字营销&#xff1f; 第二点是数字营销对比电视、广播等传统营销方式的解读&#xff1b; 第三点是数字营销带来的红利的解读。很多人认为数字营销是一种低成本获取流量的方式&#xff0c;但这其实是一种偏见&#xff1b; (2)尽可能的数…

【PythonBA】商业分析:Business Analytics 的理解

猛戳订阅! 👉 《一起玩蛇》🐍 📜 本章目录: Ⅰ. BA 的基础概念 0x00 什么是商业分析(Business Analytics) 0x01 Explain 和 Predict

利用大数据精准营销,给消费者一个选You的理由!

【数据猿导读】大数据是社会科学重要的进展&#xff0c;但企业要精准抓住未来&#xff0c;经理人要拥有更好的决断力&#xff0c;还是要基于对不同人、不同性的理解&#xff0c;而不仅是科技工具的使用而已。 官网 | www.datayuan.cn 微信公众号ID | datayuancn 尺有所短&#…

关于数字化营销,最通俗的讲解在这里

文章来源&#xff1a;微信公众号接地气学堂 作者&#xff1a;接地气的陈老师 营销向来是各种玄幻词汇出没之地&#xff0c;特别是阿里高调大喊“数字化转型”以后&#xff0c;又冒出来一个“数字化营销”。搞得很多做数据的同学一脸蒙圈&#xff1a;咋个又数字化了&#xff0…

数字化营销怎么做?数字化营销系统有什么特点?

在当今数字化时代&#xff0c;企业想成功做到数字化转型&#xff0c;就要将数字营销与企业发展战略相结合&#xff0c;使用新的营销方式、模式和策略&#xff0c;打通经营的各个环节。数字化营销有哪些特点&#xff1f; 一、业务统一 使用数字化营销系统&#xff0c;可以打通企…

营销系列(1)数字营销通识——广告人应掌握的营销、广告概念

广告是由可识别的出资人通过各种媒介&#xff0c;通常是有偿的、有组织的和非人员性劝服的&#xff0c;进行有关产品&#xff08;商品、服务和观点&#xff09;的信息传播活动。—— William Arens 《当代广告学》 数字营销简介 1、营销的概念 企业为获得利益回报而为顾客创造…

2023商业版ChatGPT网页版源码V4.4+有后台/功能配置多

正文: 4.4版本来了 V4.4 新增注册用户赠送次数自定义 修复前端密钥明文 V4.3 优化首页加载CSS 之前加载的时候div块会往左边跑 代码安全性逻加强 优化首页输入框换行过高的问题 安装教程: 搭建宝塔 解析域名 上传程序至根目录 配置数据库信息:lib/config.php 导入…

PAT乙级1005解题心路,关于测试点1答案错误与3,4段错误

最近在做PAT上的题&#xff0c;做到1005硬是做了很久&#xff0c;老有错误&#xff0c;最后终于做对了&#xff0c;随便写一点东西吧。 话不多说先上题&#xff1a; 继续(3n1)猜想 (25) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复…

解题的错误在哪?

题目是有三个整数a&#xff0c;b&#xff0c;c&#xff0c;有键盘输入&#xff0c;输出最大的数 #include<stdio.h> int main() {double a,b,c,max,max1;scanf("%lf,%lf,%lf",&a,&b,&c);if(a>b)maxa;elsemaxb;if(max>c)max1max;elsemax1c;p…

计算错题集(有错误就加入错题集,持续更新)

VASP计算错题集 万事开头难&#xff0c;学习第一性原理计算的一年中碰到了很多让我困惑的问题&#xff0c;在这里总结整理出来(随时更新)&#xff0c;防止师弟师妹们陷入困惑&#xff0c;真的很让人头大&#xff0c;并且超级费时间&#xff0c;希望能帮助避雷&#xff01;如果师…

开源大模型LLaMA 2会扮演类似Android的角色么?

在AI大模型没有商业模式&#xff1f;等文章中&#xff0c;我多次表达过这样一个观点&#xff1a;不要把大模型的未来应用方式比喻成公有云&#xff0c;大模型最终会是云端操作系统的核心&#xff08;新通用计算平台&#xff09;&#xff0c;而它的落地形式会很像过去的沃森&…

中国XR产业投融资热点

导读&#xff1a; 全球XR硬件行业进入恢复增长期&#xff0c;2022年出货量超1,000万台;技术迭代和内容生态完善将释放市场潜力:中国XR头显设备市场在全球市场的占比有望持续提升。 VR硬件主要分为一体式VR硬件和外接式VR硬件:凭借轻便可移动的优势&#xff0c;一体式VR硬件逐渐…

2023年中国共享充电宝行业趋势

导读&#xff1a; 共享充电宝行业经过多年快速发展&#xff0c;大部分曾经的创业企业已经被淘汰或者业务转型&#xff0c;头部品牌梯队已经形成&#xff0c;头部品牌的竞争壁垒已经建立。从共享充电宝的竞争格局来看&#xff0c;怪兽充电、竹芒科技&#xff08;街电搜电&#x…