c# - 为什么我无法获取外部应用程序的 RootVisual?
问题描述
我正在开发 WPF 中的自动化测试框架。我发现虽然可以使用基本的 WPF 自动化框架来自动化大多数事情,但很难深入了解 UI 级别正在发生的事情的细粒度细节。我需要能够查看诸如 DataContext 的属性、控件的属性等内容。我知道这是可能的,因为 Snoop 可以做到。Snoop 允许您遍历任何 WPF 应用程序的整个可视化树。我需要这个功能。所以,我写了这段代码:
public async Visual GetAppRootVisual()
{
var allProcesses = Process.GetProcesses();
var filteredProcess = allProcesses.Where(p => p.ProcessName.Contains(ProcessSearchText)).First();
var windowHandle = filteredProcess.MainWindowHandle;
var hwndSource = HwndSource.FromHwnd(windowHandle);
return hwndSource.RootVisual;
}
代码一直运行到倒数第二行。倒数第二行返回 null,但我不知道为什么。返回 windowHandle,但不返回 HwndSource。这里出了什么问题?
解决方案
推荐阅读
- reactjs - 在 React Native 中管理环境
- laravel - 如何在中间件中验证电子邮件
- android - RecyclerView多选与PagedListAdapter选择一项时隐藏所有项目
- javascript - 当用户在 vuejs 中点击搜索时,如何显示最近的搜索历史结果?
- android - 将数据从 firebase 函数返回到 android
- javascript - React 组件和 App.js 错误:元素类型无效
- xslt - 通过 xslt 从源头重复考虑
- php - 在目录中创建文件 Error500
- html-email - Netsuite:交易的 HTML/电子邮件子列表未正确循环
- machine-learning - 当我们加载预训练模型并且我们没有训练数据集时,如何缩放预测数据?