3

我用 c# (winforms) 编写的应用程序使用 Process.start() 启动第三方。

启动后,我需要在第三方应用的搜索文本框中填写一些信息。那么如何识别第三方应用的文本框呢?如何填写信息?

有什么线索或指导吗?要搜索的关键字?

4

1 回答 1

4

您可以使用UI 自动化库来执行此操作。

使用Inspect.exeUISPY.exe找到automationid 、 name 等任何可以唯一标识文本框的参数。假设您知道自动化 ID,您已经这样做了,您可以执行类似的操作。

string automationId = "ThirdyPartBox";
string newTextBoxValue = "foobar";
var condition = new PropertyCondition(AutomationElement.AutomationIdProperty, automationId);
var textBox = AutomationElement.RootElement.FindFirst(TreeScope.SubTree , condition);
ValuePattern vPattern = (ValuePattern)textBox.GetCurrentPattern(ValuePattern.Pattern);
vPattern.SetValue(newTextBoxValue);

也许文本框本身不是唯一可识别的,您可以使用进程 ID、父容器 ID 等条件来定位它。

单击按钮。首先使用您选择的条件查找自动化元素,然后

InvokePattern clickButton = (InvokePattern)buttonElement.GetCurrentPattern(InvokePattern.Pattern);
clickButton.Invoke();
于 2012-09-14T17:55:51.130 回答