赞
踩
一 准备
.NetFramework 4.8
FlaUI.UIA3 4.0.0
FlaUInspect V1.3.0
1下载FlaUInspect
https://github.com/FlaUI/FlaUInspect
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提示信息 可以做自动化辅助工具
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。