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.hqwc.cn/news/214817.html

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

相关文章

Table和HashBasedTable的使用案例

------------------- 1.普通使用 package org.example.testhashbasedtable;import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table;import java.util.Map;public class TestHashBasedTable {public static void main(String[] args) {Ta…

HBase数据模型杂谈

1.概述 HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳。 每个值是一个未经解释的字符串,没有数据类型。用户在表中存储数据,每一行都有一个可排序的行键和任意多的列。表在水平方向由一个或者多个列族…

【C++高阶(三)】AVL树深度剖析模拟实现

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 AVL树 1. 前言2. AVL树的概念以及特性3. AVL树模…

查企业联系电话的方法

对于销售来说,获取准确、全面的企业联系方式,无疑是开发客户的基础与保障,因为任凭能力再高,说服能力多强,没有与客户接触的机会,这些都是无稽之谈。但是大家都知道,道理都懂,但是要…

Java二级医院区域HIS信息管理系统源码(SaaS服务)

一个好的HIS系统,要具有开放性,便于扩展升级,增加新的功能模块,支撑好医院的业务的拓展,而且可以反过来给医院赋能,最终向更多的患者提供更好的服务。 系统采用前后端分离架构,前端由Angular、J…

【MySQL】数据库基础操作

👑专栏内容:MySQL⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、数据库操作1、创建数据库2、查看所有数据库3、选定指定数据库4、删除数据库 二、数据表操作1、创建数据表2、查看所有表3、…

H5游戏和小程序游戏的区别是什么,分别有什么优势?

H5游戏和小程序游戏都是基于互联网的游戏形式,但它们在技术实现、发布平台和用户体验等方面存在一些区别。 技术实现: H5游戏: 使用HTML5、CSS3、JavaScript等Web技术进行开发。这意味着玩家可以通过任何支持Web浏览器的设备访问游戏&#…

11-23 SSM4

Ajax 同步请求 :全局刷新的方式 -> synchronous请求 客户端发一个请求,服务器响应之后你客户端才能继续后续操作,请求二响应完之后才能发送后续的请求,依次类推 有点:服务器负载较小,但是由于服务器相应…

什么是网络安全工程师,你想知道的都在这里!

随着互联网的发展和大数据时代的到来,网络已经日渐深入到我们生活、工作中的方方面面,社会信息化和信息网络化,突破了应用信息在时间和空间上的障碍,使信息的价值不断提高。但是,与此同时,网页篡改、计算机…

3D卷积的理解

卷积核不仅需要在高宽这两个维度上进行滑动,还需要在时间维度上进行滑动

模拟退火算法应用——求解函数的最小值

仅作自己学习使用 一、问题 需求: 计算函数 的极小值,其中个体x的维数n10,即x(x1,x2,…,x10),其中每一个分量xi均需在[-20,20]内。因此可以知道,这个函数只有一个极小值点x (0,0,…,0),且其极小值是0&…

PHP预约上门回收废品系统的代码披露

PHP预约上门回收废品系统的代码披露 <?phpnamespace app\admin\controller;class Code {public function getTopDomainhuo(){error_reporting(0);$host $_SERVER["HTTP_HOST"];$matchstr "[^\\.]\\.(?:(" . $host . ")|\\w{2}|((" . $ho…