从单独的进程枚举/与WPF Windows和控件交互

时间:2013-04-12 13:27:59

标签: c# wpf accessibility

很久以前我开发了一个测试自动化系统,遗憾的是当时没有一个框架可以实现。

其中一个关键功能是能够利用标准的Win32 API(EnumWindows,FindWindowEx等)查找Win32对话框并与之交互。

由于Windows 8的变化,团队最近在混合中引入了一个WPF应用程序,我开始了我认为这是一个简单的任务,即查找窗口,枚举控件(查找“确定”按钮)并单击它。请务必注意,我的系统不会调用受测试的应用程序。这是一个系统级事件,基本上我需要通过OK按钮“找到它”并“关闭它”,因为它需要代码路径。

我很快意识到这并不像我想象的那么直接,但我知道它可能因为使用Snoop我可以找到窗口并向下钻取控制树直到我找到它。关于这个主题有很多问题,但它们都在同一个app / appdomain中。

就我而言,这是从一个完全独立的应用程序(.net 4)发生的。我知道窗户标题,但很少。

有没有人知道如何实现Snoop正在做的事情(找到一个窗口,获取其控件列表,遍历某个标准寻找特定控件)然后模拟click事件?

1 个答案:

答案 0 :(得分:0)

我从未使用它,但您可能正在寻找this page on MSDN

从该页面开始:

  

Microsoft UI Automation是新的可访问性框架   微软Windows。它满足了辅助技术的需求   通过提供程序化的产品和自动化测试框架   访问有关用户界面(UI)的信息。另外,UI   自动化使控制和应用程序开发人员能够制作他   产品无障碍。