当前位置: 首页 > news >正文

(13)PC端自动化测试-C#微信接收消息并自动回复

本篇文章实现了微信自动接收最新的实时聊天信息,并对当前实时的聊天信息做出对应的回复。

可以自行接入人工智能或者结合自己的业务来做出自动回复。

下面视频是软件实际效果

自动接收消息并回复

实现的逻辑是实时监控微信的聊天面板中UI对象来判断是否有最新的消息过来,如果没有则继续监听,如果有则点击UI对象切换到当前聊天面板,并找到聊天面板中的输入框和发送按钮元素来进行回复。

(1)监控聊天面板中的UI对象

   public override void Start(){if (State == TaskState.Stop){State = TaskState.Runing;}else {return;}Thread th = new Thread(new ThreadStart(() =>{while (State == TaskState.Runing){var currentChatList = UI_WX_Window.Current.Find("/Pane/Pane[1]/Pane[2]/Pane/Pane/Pane/List");if (currentChatList == null || currentChatList.ControlType != FlaUI.Core.Definitions.ControlType.List){Thread.Sleep(1000);continue;}var source = currentChatList.FindAllChildren();var tempMessageSource = new List<WXRealMsgEntity>();source.ToList().ForEach(item =>{if (item.ControlType == FlaUI.Core.Definitions.ControlType.ListItem){var buttonName = item.FindFirstByXPath("/Pane/Button")?.Name;var time = item.FindFirstByXPath("/Pane/Pane/Pane[1]/Text")?.Name;var lastMessage = item.FindFirstByXPath("/Pane/Pane/Pane[2]/Text")?.Name;var count = item.FindFirstByXPath("/Pane/Text")?.Name;var messageitem = new WXRealMsgEntity { UserName = buttonName, Time = time, CurrentMessage = lastMessage, Count = count };tempMessageSource.Add(messageitem);if (historyMessageSource != null){//与历史消息比较//var cnt = historyMessageSource.Count(s => s.UserName == messageitem.UserName//&& messageitem.Time == s.Time//&& messageitem.CurrentMessage == s.CurrentMessage//&& messageitem.Count == s.Count);var cnt = historyMessageSource.Count(s => s.UserName == messageitem.UserName && messageitem.CurrentMessage == s.CurrentMessage);if (cnt == 0){//有新消息SetMessage(messageitem.UserName + "发送给新消息你:" + messageitem.CurrentMessage);if (ReplyUser.Count(ss => ss.Contains(messageitem.UserName))>0){//自动回复UI_WX_Window.Current.ClickElement(item);Thread.Sleep(200);SendWXMsg(messageitem.UserName,ReplyMessage);//需要将历史消息本条重置SetMessage(  "自动回复消息给"+messageitem.UserName+":" + ReplyMessage);messageitem.CurrentMessage = ReplyMessage;}}}}});historyMessageSource = tempMessageSource;Thread.Sleep(1000);}}));th.Start();base.Start();}

(2)发送消息

  public void SendWXMsg(string name, string message){var SendInput = GetSendInput();if (SendInput != null){SetText(new WXMessageEntity { Info = message, Type = WXMessageType.Text }, SendInput, false);var SendButton = GetSendButton();if (SendButton != null){UI_WX_Window.Current.ClickElement(SendButton);SystemLog.Info("向联系人【" + name + "】发送消息成功");}}else{SystemLog.Error("【" + name + "】不是有效联系人");}}

上一篇 (12)PC端微信自动化测试-C#采集微信聊天记录

如果读者对上述文章存在不清晰的地方可以找本人获取运行源码来学习,QQ 978124155

相关文章:

(13)PC端自动化测试-C#微信接收消息并自动回复

本篇文章实现了微信自动接收最新的实时聊天信息&#xff0c;并对当前实时的聊天信息做出对应的回复。 可以自行接入人工智能或者结合自己的业务来做出自动回复。 下面视频是软件实际效果 自动接收消息并回复 实现的逻辑是实时监控微信的聊天面板中UI对象来判断是否有最新的消…...

企业金蝶KIS软件服务器中了locked勒索病毒怎么办,勒索病毒解密

最近一段时间&#xff0c;网络上的locked勒索病毒又开始了新一波的攻击&#xff0c;给企业的正常生产生活带来了严重影响。经过最近一段时间云天数据恢复中心对locked勒索病毒的解密&#xff0c;为大家整理了以下有关locked勒索病毒的相关信息。近期locked勒索病毒主要攻击金蝶…...

2023年阿里云双11优惠来了,单笔最高可省2400元!

2023年阿里云双11活动终于来了&#xff0c;阿里云推出了金秋云创季活动&#xff0c;新用户、老用户、企业用户均可领取金秋上云礼包&#xff0c;单笔最高立减2400元&#xff01; 一、活动时间 满减券领取时间&#xff1a;2023年10月27日0点0分0秒-2023年11月30日23点59分59秒 …...

k8s资源调度

默认的情况下&#xff0c;一个pod在哪个node节点上运行&#xff0c;是由scheduler组件采取对应的算法计算出来的&#xff0c;这个过程是不受人工控制的&#xff0c;在实际的使用过程中&#xff0c;这不能够满足客观的场景&#xff0c;针对这样的情况&#xff0c;k8s 提供了四大…...

【Netty专题】用Netty手写一个远程长连接通信框架

目录 前言阅读对象阅读导航前置知识课程内容一、使用Netty实现一个通信框架需要考虑什么问题二、通信框架功能设计2.1 功能描述2.2 通信模型2.3 消息体定义2.4 心跳机制2.5 重连机制*2.6 Handler的组织顺序2.7 交互式调试 三、代码实现&#xff1a;非必要。感兴趣的自行查看3.1…...

注册商标被宣告为无效的5种情形

1.与已注册商标过于相似&#xff1a;商标法规定商标应具备独立性和显著性&#xff0c;能够与已注册商标有效区分开来。如果新申请商标与已注册商标过于相似&#xff0c;可能会导致商标无效。相似性包括外观形状、字母组合、发音或含义等方面的相似度。 2.缺乏独特性和显著性&am…...

C#在类中申明成员数组变量的格式

在C#中&#xff0c;在类中申明成员数组变量的格式如下&#xff1a; 访问修饰符 数据类型[] 变量名; 其中&#xff1a; 访问修饰符表示该成员变量的访问权限&#xff0c;可以是public、private、protected、internal等修饰符之一&#xff1b;数据类型表示数组元素的类型&…...

通俗易懂理解CNN卷积神经网络模型的参数量和计算量

一、参考资料 神经网络参数量、计算量&#xff08;FLOPS&#xff09;、内存访问量&#xff08;MAC&#xff09;计算详解 5种方法获取Torch网络模型参数量计算量等信息 二、参数量与计算量相关介绍 1. 为什么要统计模型参数量和计算量 好的网络模型不仅要求精度准&#xff0…...

npm工具使用方法介绍

npm 使用方法 文章目录 npm 使用方法安装 npm初始化项目安装依赖更新依赖卸载依赖发布包其他命令下载相关 npm 是 Node.js 的包管理工具&#xff0c;用于管理 Node.js 项目的依赖关系。npm 提供了丰富的命令和功能&#xff0c;可以帮助开发者快速构建和部署 Node.js 应用程序。…...

使用Python批量修改PPT字体和提取全部文字到word

目录 一、修改PPT中每一页的字体二、将文本框中的字都放到word里 将一份PPT的每一页字体、大小、是否加粗都统一&#xff0c;是一个常见需求。特别是字体统一是高频、热点需求。在python操控PPT常用库python-pptx中有一个bug&#xff0c;对字体的修改只能修改数字和英文字母&am…...

Debezium系列之:在K8s集群中部署Debezium Operator运行Debezium Server的详细步骤

Debezium系列之:在K8s集群中部署Debezium Operator运行Debezium Server的详细步骤 一、背景二、目标三、准备环境四、运行本地 Kubernetes 集群五、认识K8s集群部署工具kind六、认识Kubernetes Operator六、安装docker七、安装kind八、安装kubectl九、使用kind创建k8s集群十、…...

并行和并发有什么区别?

并行和并发 并行和并发最早其实描述的是 Java 并发编程里面的概念。他们强调的是 CPU 处理任务的能力。简单来说&#xff1a; 并发&#xff0c;就是同一个时刻&#xff0c;CPU 能够处理的任务数量&#xff0c;并且对于应用程序来说&#xff0c;不会出现卡顿现象。并行&#x…...

第2篇 机器学习基础 —(3)机器学习库之Scikit-Learn

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。Scikit-Learn&#xff08;简称Sklearn&#xff09;是Python 的第三方模块&#xff0c;它是机器学习领域当中知名的Python 模块之一&#xff0c;它对常用的机器学习算法进行了封装&#xff0c;包括回归&#xff08;Regressi…...

正点原子嵌入式linux驱动开发——Linux SPI驱动

到目前为止的学习笔记&#xff0c;已经介绍了Linux下的platform总线框架、I2C总线框架&#xff0c;本篇笔记将介绍Linux下的SPI总线框架。与I2C总线一样&#xff0c;SPI是物理总线&#xff0c;也是一种很常用的串行通信协议。本章就来学习如何在Linux下编写SPI总线接口的设备驱…...

【计算机视觉】相机

文章目录 一、原始的相机&#xff1a;针孔相机&#xff08;Pinhole Camera&#xff09;二、针孔相机的数学模型三、真实相机四、透镜的缺陷 我的《计算机视觉》系列参考UC Berkeley的CS180课程&#xff0c;PPT可以在课程主页看到。 成像原理 一、原始的相机&#xff1a;针孔相机…...

Spring的条件注解,一篇文章盘得清清楚楚明明白白

前言 在Spring中&#xff0c;条件注解可根据特定的条件来决定是否创建或配置Bean&#xff0c;这些条件可以基于类、属性、环境等因素。通过使用条件注解&#xff0c;我们可以在Spring容器中更加灵活地管理和控制组件的创建和注入&#xff0c;帮助我们更加灵活地管理和控制Bean…...

Oracle (7)Online Redo Log Files

目录 一、Oracle Online Redo Log Files及其相关内容介绍 1、Online Redo Log Files简介 2、Online Redo Log Files特点 3、Online Redo Log Files文件组 4、多路复用文件 5、联机重做日志文件工作方式 6、LGWR什么时候写重做 7、LS和LSN 8、删除Redo文件成员 9、删除…...

物联网AI MicroPython传感器学习 之 PAJ7620手势识别传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 手势识别传感器PAJ7620u2是一款集成3D手势识别和运动跟踪为一体的交互式传感器&#xff0c;传感器可以在有效范围内识别手指的顺时针/逆时针转动方向和手指的运动方向等。它可以识别13种手势&a…...

Affinity Photo 2.2.1 高端专业Mac PS修图软件

Affinity Photo Mac中文版是一款面向专业摄影师和其他视觉艺术家的专业图像处理软件&#xff0c;拥有众多专业高端功能&#xff0c;如Raw处理、PSD导入和导出、16位通道的编辑和ICC色彩管理以及兼容大量图片格式。是现在最快、最顺、最精准的专业修图软件。Affinity Photo Mac是…...

微服务-统一网关Gateway

网关的作用 对用户请求做身份认证、权限校验将用户请求路由到微服务&#xff0c;并实现负载均衡对用户请求做限流 搭建网关服务 创建新module&#xff0c;命名为Gateway&#xff0c;引入依赖&#xff08;1.SpringCloudGateway依赖&#xff1b;2.Eureka客户端依赖或者nacos的服…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...