如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?
Posted
技术标签:
【中文标题】如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?【英文标题】:How to resize UIA window for UIAutomation purposes, using C#? 【发布时间】:2013-07-26 01:04:25 【问题描述】:我使用 Visual Studio 为 Win32 应用程序创建了一些编码的 UI 测试。我希望窗口大小保持一致,因此我希望它在启动应用程序后调整应用程序窗口的大小。
我正在像这样启动应用程序:
using (ApplicationUnderTest.Launch(this.UIMap.launchReaderParams.ExePath,
this.UIMap.launchReaderParams.AlternateExePath))
我已经研究了执行此操作的可能方法,并找到了一种名为 SetWindowPos()
的方法。但是我不确定如何使用它,因为它需要窗口句柄作为其参数之一。如何获取窗口句柄?
另外,有没有更好的方法来调整我的应用程序窗口的大小?
【问题讨论】:
【参考方案1】:您可以通过向 CreateProcess 提供 STARTUPINFO 结构将位置和大小传递给被测应用程序。现在,当然,您的问题是将STARTUPINFO
结构转换为CreateProcess
。我不知道你的Launch
方法是如何实现的,但在某些时候它会调用CreateProcess
(好;你所要做的就是适当地初始化STARTUPINFO
结构)或ShellExecute
(坏,因为你不能指定 STARTUPINFO
结构)。
【讨论】:
这听起来不错,但我最终还是使用了 SetWindowsPos 函数。我通过搜索当前进程返回了应用程序句柄。以上是关于如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Iphone UIAutomation 中编辑表格时选择 (-) 图标
如何使用带有 tuneup.js 的 UIAutomation 验证警报内容