タイトル | : IAccessbileオブジェクトでメニューが選択できない |
記事No | : 16452 |
投稿日 | : 2018/08/20(Mon) 16:35 |
投稿者 | : jusu |
連続で、申し訳ないです。 ちょっと状況が違うので、新たに起こしました
引き続きアプリケーションの自動処理ということで アプリケーションのメニューを押すことを試みています。 GetMenuItemInfo API + SendMessage(ハンドル, BM_CLICK, 0, 0) では成功しているのですが、タイミングによって効かない事もあるので IAccessbleにて、できないか試しています。
プログラムの一部 ’宣言部 略 Private Enum NVADIRConstants NAVDIR_MIN NAVDIR_UP NAVDIR_DOWN NAVDIR_LEFT NAVDIR_RIGHT NAVDIR_NEXT NAVDIR_previous NAVDIR_FIRSTCHILD NAVDIR_LASTCHILD NAVDIR_max End Enum
'main 略 AccessibleObjectFromWindow (HWnd, OBJID_CLIENT, IID_IAccessible, objAcc) '--アプリケーションメニューバー選択まで略 lngCount = objAcc.accChildCount ReDim list(Count - 1) As Variant lngRet = AccessibleChildren(objAcc, 0, Count, list(0), Count) Set objAcc = list(3) '左から4つめのメニューを選択
Count = objAcc.accChildCount '1段下オブジェクト(7つ) ReDim list(Count - 1) As Variant lngRet = AccessibleChildren(objAcc, 0, Count, list(0), Count) Set objAcc = list(0) 'コンテキスト(ポップアップ)を選択 lngCount = objAcc.accChildCount '1段下オブジェクト(7つ) ReDim list(Count - 1) As Variant lngRet = AccessibleChildren(objAcc, 0, Count, list(0), Count) Set objAcc = list(5) 'メニュー5 を選択 ここの「メニュー5を選択」のところで「オブジェクトが必要です」というエラーになります accExplorerでは次のメニューオブジェクトが見えてるのですが、、、
ちょと気になるのが child = objAcc.accNavigate(NAVDIR_FIRSTCHILD, CHILDID_SELF) が、navidir_upなどの他の定数(方向)、および、どのobjAccからも実行できない (プロシージャー、引数が不正) objAcc.accName がどのobjaccでもエラー(上同)
また、Dim objAcc As IAccessible の宣言で Dim objAcc As まで入力した時に IAccessbleが候補にでないということが気になっています IAccessbleは、system32 のoleaccを参照していますが、参照設定からみるとsyswow64になっています また、環境がwin10+VB6というのが弱いところなのですが、、、
|