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提示信息 可以做自动化辅助工具

演示代码下载

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【正点原子STM32连载】第五十九章 T9拼音输入法实验(Julia分形)实验 摘自【正点原子】APM32F407最小系统板使用指南

1)实验平台:正点原子APM32F407最小系统板 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html## 第五十…

Oracle中文显示???????解决办法

项目场景: Oracleoracle中文显示???解决办法 问题描述 原因分析: Oracle中文显示???通常是由于字符集不匹配或者编码问题导致的。当数据库中的数据使用的是某种字符集,而客户端或者应用程序使用的是另一种字符集时,就会出…

网站监控有什么用,什么是网站监控?

网站内容监控是指采用数据采集、人工智能、云计算、机器学习、语义分析等技术,结合网站内容监管指标,针对网站内容安全、信息发布、办事服务、互动交流、功能设计、创新发展等指标进行实时监测,以防止网站页面内容被篡改,出现黄、…

tp8 使用rabbitMQ(4)路由模式

路由模式 在第三节中我们使用的 交换机的 fanout 把生产者的消息广播到了所有与它绑定的队列中处理,但是我们能不能把特定的消息,发送给指定的队列,而不是广播给所有队列呢? 如图,交换机把 orange 类型的消息发送给了…

医保线上购药系统:代码驱动的医疗创新

医保线上购药系统,这是一个融合技术和医疗的创新典范。本文将通过简单的技术代码示例,为您揭示这一系统是如何通过技术驱动医疗创新,为用户提供更智能、便捷的健康管理体验的。 1. 前端界面开发 使用React框架,我们可以轻松构建…

node-red - 节点实战总结1

node-red - 节点实战总结1 二、功能2.1 循环(for\while) 三、网络四、序列五、解析六、存储七、协议7.1 modbus协议7.2 opcua 八、formats8.1 时间格式化与时区转换 二、功能 2.1 循环(for\while) 安装节点node-red-contrib-loop-processing,该节点支持三种方式的循环&#xf…

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…

贵金属交易指南:如何在市场中获利?

贵金属市场一直以来都是投资者追逐利润的热门选择,然而,贵金属市场波动较大,在市场中获利并非易事。想要成功,需要理解市场动态和采取适当的策略。万洲金业将为您提供一些实用的贵金属交易指南,帮助您在市场中获利。 …

2023年 TOP5 知识库软件大盘点

在当今信息爆炸的时代,企业需要有效管理和组织海量的知识和信息。知识库软件成为了企业获取、存储和共享知识的重要工具。随着技术的不断进步和市场竞争的加剧,2023年很多知识库软件突破重围,在SaaS行业有很高的知名度。接下来就盘点一下2023…

希宝猫罐头怎么样?专业人士告诉你什么牌子的猫罐头口碑好

嗨,大家好!我是一家猫咖店的店长,已经和猫咪们打交道6年了。在这段时间里,我尝试过不下30种不同的猫罐头,所以我在猫罐头方面还是有一些经验的。今天,我想和大家分享一些值得购买的猫罐头,以及一…

2023年APMCM亚太杯数学建模竞赛A题思路解析

2023年APMCM亚太赛 A 题: 果实采摘机器人的图像识别 Image Recognition for Fruit-Picking Robots 【请电脑打开本文链接,扫描下方名片中二维码,获取更多资料】 翻译 中国是世界上最大的苹果生产国,年产量约为3500万吨。与此同…

悦榕集团以养修概念持续引领健康出行

诚邀宾客共赴身、心、灵的回归之旅 【2023年11月22日,中国,上海】作为全球领先的独立酒店集团,悦榕集团一直以来始终秉承可持续发展理念,为宾客打造多层次的身、心、灵平衡之旅。出于对当代人生活方式变化和旅行需求的敏锐洞察&am…

林业无人机如何提升巡山护林效率?

在郁郁森林之上,一架无人机正盘旋在上空时刻观察着林区的情况。凭借复亚智能的全自动巡检系统,无人机巡山护林的巡视范围和反馈实时性得到了显著提升。 一、林业无人机:科技赋能森林防火 秋季林区时常发生火灾,林业无人机在森林防…

Netty 模型理解

参考文章 1 参考文章 2 官网API文档 Reactor模型 Netty模型 Netty主要基于主从Reactor多线程模型进行了一定的修改,该模型包括以下几个组件: MainReactor(主Reactor):负责处理客户端的连接请求。它监听服务器上的端口…

【学习笔记】GameFramework的非官方实例TowerDefense-GameFramework-Demo的流程

一、从游戏开始到打开一个Menu GameStart.unity GameEntry.Builtin.cs ProcedureComponent.cs GameStart.unity->GameFramework->Builtin->Procedure ProcedureLaunch.cs ProcedureSplash.cs ProcedurePreload.cs ProcedureLoadingScene.cs DataTables/Scene.txt Pro…

【日常总结】如何禁止浏览器 http自动跳转成https

一、场景 二、问题 三、解决方案 3.1 chrome 浏览器 3.2 edge 浏览器: 3.3 Safari 浏览器 3.4 Firefox 浏览器 3.5 Microsoft Edge 一、场景 公司网站 http:// 谷歌浏览器中自动转换成 https:// 导致无法访问 二、问题 nginx配置ssl 443接口, ht…

MFC设置单选按钮点击自己可以可选和不可选

mfc是c的一个框架,可谓是经久不衰。最近博主遇到一个问题,就是单选按钮点击自己可以设置可选和不可选,貌似类似复选框一样,但领导分发的任务上要求的是用单选按钮实现复选框这种类似功能,实现效果类似如下图&#xff1…

葡萄采收时节分类,其中大有学问

葡萄在酿造葡萄酒的时候有一个关键的因素那就是葡萄的采收期,符合采收时节的葡萄大部分属于成熟好的葡萄,那么,云仓酒庄的品牌雷盛红酒分享这样的葡萄酿出来的酒自然优质。正是因为采收时分不同,根据采摘的不同,给不同…

浅谈国内智能制造现状和未来发展趋势

进人二十一世纪,互联网、新能源、大数据等技术的迅猛发展,从而使得社会发生巨大的改变,人类生产工业发生变革。为应对全球挑战,我国根据发展的实际情况,提出《中国制造2025》的国家战略规划。毋庸置疑的是,…

Redis Cluster主从模式详解

在软件的架构中,主从模式(Master-Slave)是使用较多的一种架构。主(Master)和从(Slave)分别部署在不同的服务器上,当主节点服务器写入数据时,同时也会将数据同步至从节点服…