c#(winforms)で記述された私のアプリは、Process.start()を使用してサードパーティを起動します。
起動後、サードパーティアプリの検索テキストボックスにいくつかの情報を入力する必要があります。では、thirdpatyアプリのテキストボックスを識別する方法は?情報を入力する方法は?
手がかりやガイダンスはありますか?検索するキーワード?
これは、 UIオートメーションライブラリを使用して行うことができます。
Inspect.exeのいずれかのUISPY.exeを使用して、自動化ID、名前など、TextBoxを一意に識別できるパラメータを見つけます。これを実行したら、自動化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();