C#FlaUI.UIA实现发送微信消息原理

一 准备

.NetFramework 4.8
FlaUI.UIA3 4.0.0 

FlaUInspect V1.3.0

1下载FlaUInspect 

https://github.com/FlaUI/FlaUInspect

FlaUInspect V1.3.0

百度网盘下载

2 NuGet 引用 flaUI.UIA3 4.0.0

二代码部分

1 引用FlaUI

using FlaUI.Core;
using FlaUI.Core.AutomationElements;
using FlaUI.Core.Input;
using FlaUI.Core.WindowsAPI;
using FlaUI.UIA3;

2   代码全部

 class Program
{//1.GetWindowText 获取给定窗口句柄的窗口标题[DllImport("user32.dll", CharSet = CharSet.Auto)]public static extern bool SwitchToThisWindow(IntPtr hWnd, bool fAltTab);[STAThread]//启动单一现场static void Main(string[] args){Process[] processes = Process.GetProcessesByName("WeChat");if (processes.Count() != 1){Console.WriteLine("微信未启动或启动多个微信");}else{//1.附加到微信进程using (var app = Application.Attach(processes.First().Id)){using (var automation = new UIA3Automation()){//2.获取主界面var mainWindow = app.GetMainWindow(automation);//窗口置顶显示  避免其它窗口遮挡影响后续操作IntPtr handle = processes.First().MainWindowHandle;SwitchToThisWindow(handle, true);    // 激活,显示在最var childWind = mainWindow.FindChildAt(1).FindChildAt(0).FindChildAt(1).FindChildAt(0).FindChildAt(0).FindChildAt(0);childWind.DrawHighlight(System.Drawing.Color.Red);childWind.Click();//搜索"文件传输助手"Keyboard.Type("文件传输助手");Thread.Sleep(800);//回车Keyboard.Type(VirtualKeyShort.RETURN);Thread.Sleep(800);//输入内容Keyboard.Type("文件传输助手");Thread.Sleep(800);//回车Keyboard.Type(VirtualKeyShort.RETURN);}}}}
}

 三 原理如下

FlaUInspect V1.3.0

查找pane 节点 1,0,1,0,0,0

找到搜索

mainWindow.FindChildAt(1).FindChildAt(0).FindChildAt(1).FindChildAt(0).FindChildAt(0).FindChildAt(0);

根据FlaUInspect提示信息 可以做自动化辅助工具

演示代码下载

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

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

相关文章

安防系统智能视频监控中出现画面异常该如何自检?

大家都知道,在当今社会,摄像头无处不在,除了常见的生活与工作场景中,在一些无法人员无法长期驻点场景,如野生动物监测、高空作业监控、高压电缆监控等场景,在这些地方安装摄像头就是为方便日常监控。但是由…

Odoo:行业领先的免费开源生产制造管理系统

产品生命周期管理 用 Odoo 产品数据管理解决方案加速产品开发 研究、开发和设计新产品或者重新设计现有产品是所有制造企业的活力之源,但很多企业的设计部门和工程部门却完全脱离 ERP 系统。这导致工程师需要耗费大量时间来回答企业中其他部门就产品状态、修改级别…

Course1-Week2-多输入变量的回归问题

Course1-Week2-多输入变量的回归问题 文章目录 Course1-Week2-多输入变量的回归问题1. 向量化和多元线性回归1.1 多维特征1.2 向量化1.3 用于多元线性回归的梯度下降法 2. 使梯度下降法更快收敛的技巧2.1 特征缩放2.2 判断梯度下降是否收敛2.3 如何设置学习率 3. 特征工程3.1 选…

看图说话:对脏读、不可重复度、幻读进行总结

1、脏读 「事务B」将 id 为 1 的用户 name 修改为“小卡”,事务未提交。「事务A」查询 id 为 1 的用户数据,此时 name 已为“小卡”。 2、不可重复度 「事务A」第一次读取 id 为 1 的用户,name 是 “卡卡”。「事务B」将 id 为 1 的用户 nam…

Sectigo

随着互联网的普及和技术的飞速发展,网络安全问题引起重视。这时,有一家名为Sectigo(原Comodo CA)的公司应运而生,致力于为企业和个人提供最先进、最可靠的网络安全解决方案。 Sectigo(原Comodo CA) 成立于2008年,总部位于美国加利…

《使用Python将Excel数据批量写入MongoDB数据库》

在数据分析及处理过程中,我们经常需要将数据写入数据库。而MongoDB作为一种NoSQL数据库,其具有强大的可扩展性、高性能以及支持复杂查询等特性,广泛用于大规模数据存储和分析。在这篇文章中,我们将使用Python编写一个将Excel数据批…

Linux python安装 虚拟环境 virtualenv,以及 git clone的 文件数据, 以及 下资源配置

根目录创建 venvs 文件夹 sudo mkdir /venvs 进入 /venvs 目录 cd /venvsp 创建虚拟环境,前提要按照 python3 安装 的 命令 sudo apt install python3 sudo python3 -m venv 虚拟环境名 激活虚拟环境 source /venvs/zen-venv/bin/activate 安装flask pip install fl…

探究Kafka原理-2.Kafka基本命令实操

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理🔥如果感觉博主的文章还不错的话,请&#x1f44…

搭建Angular并引入NG-ZORRO组件库

作者:baekpcyyy🐟 1.安装node.js 注:安装 16.0 或更高版本的 Node.js node官网:https://nodejs.org/en 2.进入angular官网 https://angular.cn/guide/setup-local 新建一个文件夹 vsc打开 打开终端 1.首先安装angular手脚架…

怎么去掉视频水印?分享三种视频去水印技巧,轻松搞定!

怎么去掉视频水印?在分享视频时,我们常常会遇到因为水印而影响观感的问题,因此,掌握有效的去水印方法显得尤为重要,随着技术的进步,现在有多种方法可以帮助我们去除视频中的水印。 接下来分享三种简单且有效…

ARKit增加一个盒子

ARKit增加一个盒子 体验一下ARKit的能力,在室内随便加点小球,然后在AR中显示出来。 效果如下图: 以下为操作流程。 新建项目 新建一个空项目,项目一定要选择 Augmented Reality App,能够省很多的事。 之后的 conte…

JAVA线程池原理详解

线程池的优点 1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。 2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。 线程池的创建 public…

这个视频监控技术,让你的工作效率提升10倍!

在当今数字时代,视频监控技术正迅速成为社会安全、商业管理和生产运营的重要支柱。随着科技的飞速发展,视频监控不再仅仅是观察和记录,而是演变成了一种智能、高效的解决方案。 在这个数字化的时代,视频监控不仅是一种技术&#x…

Flink-简介与基础

Flink-简介与基础 一、Flink起源二、Flink数据处理模式1.批处理2.流处理3.Flink流批一体处理 三、Flink架构1.Flink集群2.Flink Program3.JobManager4.TaskManager 四、Flink应用程序五、Flink高级特性1.时间流(Time)和窗口(Window&#xff0…

穿山甲SDK接入收益·android广告接入·app变现·广告千展收益·eCPM收益(2023.11)

接入穿山甲SDK的app 全屏文字滚动APP 数独训练APP 广告接入示例: Android 个人开发者如何接入广告SDK,实现app流量变现 接入穿山甲SDK app示例: android 数独小游戏 经典数独休闲益智 2023.11.11 ~ 2023.11.22 app接入上架有一段时间了,接…

移动应用程序管理的内容、原因和方式

移动应用程序管理(MAM)是一个术语,指的是管理应用程序的整个生命周期,包括从设备安装、更新和卸载应用程序,除了在整个生命周期内管理设备外,MAM 还包括保护应用访问的数据,以及在设备上发现恶意…

17 redis集群方案

1、RedisCluster分布式集群解决方案 为了解决单机内存,并发等瓶颈,可使用此方案解决问题. Redis-cluster是一种服务器Sharding技术,Redis3.0以后版本正式提供支持。 这里的集群是指多主多从,不是一主多从。 2、redis集群的目标…

pair和typedef

文章目录 一、pair用法1.2、pair的创建和初始化1.3、pair对象的操作1.4、(make_pair)生成新的pair对象1.5、通过tie获取pair元素值 2、typedef2.1、什么是typedef2.2、typedef用法2.2.1、对于数据类型使用例如:2.2.2、对于指针的使用例如2.2.3、对于结构体的使用 2.…

java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版

上文java springboot测试类鉴定虚拟MVC请求 返回内容与预期值是否相同我们讲了测试类中 虚拟MVC发送请求 匹配返回内容是否与预期值相同 但是 让我意外的是 既然没人骂我 因为我们实际开发 返回的基本都是json数据 字符串的接口场景是少数的 我们在java文件目录下创建一个 dom…

2023年10月纸巾市场分析(京东天猫淘宝平台纸巾品类数据采集)

双十一大促期间,刚需品的纸巾是必囤商品之一。今年双十一,京东数据显示,10月23日至29日,清洁纸品成交额同比增长40%,由此也拉动了10月纸巾市场的销售。 鲸参谋数据显示,今年10月,京东平台纸巾市…