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

演示代码下载

下一篇:微信消息推送 实例开发

### 如何在 Visual Studio 中使用 NuGet 包管理器安装 FlaUI.Core、FlaUI.UIA2 和 FlaUI.UIA3 要在 Visual Studio 中通过 NuGet 包管理器安装 `FlaUI.Core`、`FlaUI.UIA2` 和 `FlaUI.UIA3`,可以按照以下方式操作: #### 方法一:通过图形界面完成安装 1. 打开 Visual Studio 并加载目标项目。 2. 右键单击解决方案资源管理器中的项目名称,选择 **“管理 NuGet 软件包”**[^2]。 3. 在弹出的窗口中切换到 **“浏览”** 选项卡,并输入关键词 `FlaUI` 进行搜索。 4. 查找并选中以下三个库依次安装: - `FlaUI.Core` - `FlaUI.UIA2` - `FlaUI.UIA3` 每次安装完成后确认其成功状态。 #### 方法二:通过控制台命令完成安装 如果更倾向于使用命令行工具,则可以通过 NuGet Package Manager Console 输入以下命令来实现安装: ```powershell Install-Package FlaUI.Core Install-Package FlaUI.UIA2 Install-Package FlaUI.UIA3 ``` 这些命令会自动下载对应的依赖项并将它们集成至当前选定的项目之中[^1]。 #### 注意事项 - 确认已安装最新版 `.NET SDK` (至少为 .NET 5.0),因为 FlaUI 对此有最低版本需求[^3]。 - 如果遇到任何错误提示,请核查项目的运行框架是否匹配上述条件以及是否存在其他潜在冲突问题[^4]。 ```csharp // 示例代码片段展示导入后的基本结构 using FlaUI.Core; using FlaUI.Core.AutomationElements; using FlaUI.UIA3; class Program { static void Main(string[] args){ // 初始化自动化实例... } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值