tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: VBで作った別アプリを制御
投稿日: 2017/08/04(Fri) 10:01
投稿者魔界の仮面弁士
SPY++ は hWnd をもつオブジェクトしか取得できませんよね。
しかし MSAA や UIAutomation は、XAML アプリの子要素や
タイトルバーの[最小化][最大化]ボタンなどといった、
固有のウィンドウハンドルを持たないオブジェクトも取得・操作できます。

関連情報として:
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=11508#11513
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=8989#8992


> →5にはボタンのSPY++で言うところのキャプションの値を代入すれば良いのでしょうか?
キャプションと同じになることもありますが、実際には別物です。
(そもそも Spy++ では、電卓ボタンのキャプションを拾えないような…)

たとえば 電卓の "C" ボタンの Name は、Windows 10 でも Windows 7 でも "クリア" ですし、
"CE" ボタンの方は、Windows 7 が "項目をクリア"、Windows 10 が "入力のクリア" です。


なお、自作アプリの場合は、AutomationIdProperty を使った方が良いでしょう。
これは、デザイン時のコントロール名(SaveButton とか txtUserName など)です。


> →上の文のcontroltype.ButtonのButtonはSPY++で調べた時のクラスの項目を記入するのでしょうか?
UIオートメーションのコントロールタイプは、SPY++ のクラス名とは別物です。
指定可能な値は下記を参照してみてください。
https://msdn.microsoft.com/ja-jp/library/system.windows.automation.controltype.aspx

ただ、AutomationId が分かっているのであれば、ControlType の AND 条件は不要かと。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。