それは簡単な作業だと思っていましたが、それはそれとはかけ離れていることが判明しました。 Spy ++はコントロールIDを生成しません(メインウィンドウのみ表示)。各コントロールには名前があります。例(Button - > "AddButton") SendMessageなどの呼び出されたメソッドを使用しようとしましたが、メインウィンドウハンドルが正常に取得されますが、コントロールハンドルを取得しようとすると常に0が返されます。他のアプリケーションからWPFボタンをクリック
私はUIオートメーションライブラリについて聞いたことがありますが、私の特定のタスクの使い方の明確な例は見つかりませんでした。
私の目標:(このようなデータグリッドセルのテキストなど)のデータを取得し、リモートで別のアプリケーションから、WPFアプリケーションのボタンをクリックすることができること(私はC#を使用することがあります)事前に
ありがとう!
編集:私はRanorexスパイを試してみましたが、うまくコントロールをクリックすることができたました: Press button from Ranorex
私はそれをシミュレートできますか?
EDIT 2: 私はうまくいけば、それは他の人々を助ける、さらにいくつかのドキュメンテーションを読んだ後にそれを行うために管理:
string mainTitle = "";
string controlName = "";
AutomationElement prog = AutomationElement.RootElement.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.NameProperty, mainTitle));
AutomationElement btn = prog.FindFirst(TreeScope.Descendants,
new PropertyCondition(AutomationElement.AutomationIdProperty, controlName));
InvokePattern clickBtn = (InvokePattern) btn.GetCurrentPattern(InvokePattern.Pattern);
clickBtn.Invoke();
どのアプリケーションからデータを取得しますか? –
WPFアプリケーションのほんの一部ですが、特定のアプリケーション名を指定する必要がありますか? – TricksterJoe
あなたの投稿はあまり意味がありませんか?なぜ2つのwpfアプリケーションがあり、なぜそれらの間でデータとイベントを共有したいのですか? –