Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
UIAutomationで、invokeが有効にならない
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30825#CommentId85545
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
でふぁいあんと
 (社会人)
投稿日時
2022/12/22 14:32:11
お世話になります。
事情があって、vbプログラム上から、win10「既定のブラウザ」をIEに切り替える必要があります。
最初はレジストリ操作を試みました。レジストリの変更はできましたが、
実際のブラウザはかわらずじまい。
そこで、「設定」アプリから、「既定のアプリ」->webブラウザをUIAutomationにて切り替える
ことをチャレンジしています
webBrowserのボタンを捕まえるところはうまく行ったのですが、
invokeしても「設定アプリ」が反応しません
ちなみに、Inspect.exeにて、
webbrowser,internet Explorer buttonにaction->invoke.invokeすると、きちんとポップアップを開きます。
このinvokeの方法、その後のポップアップの処理について
何かヒントでもありますでしょうか
'設定アプリを起動する
strCMD = "start ms-settings:defaultapps"
Set objExec = WSH.Exec("cmd.exe /c" & strCMD)
'ハンドル
hWwnd = FindWindow(vbNullString, "設定")
'ウィンドウハンドルからエレメントを取得
Set uiElm = uiAuto.ElementFromHandle(ByVal hwnd)
'以下冗長ですが、webbrowserのボタンまで下ります
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId,"Windows.UI.Core.CoreWindow")
Set uiElm = uiElm.FindFirst(TreeScope_Children, uiCnd)
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "LandmarkTarget")
Set uiElmAr = uiElm.FindAll(TreeScope_Children, uiCnd)
'2番めの"group"
Set uiElm = uiElmAr.GetElement(1)
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "ScrollViewer")
Set uiElm = uiElm.FindFirst(TreeScope_Children, uiCnd)
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "GroupItem")
Set uiElm = uiElm.FindFirst(TreeScope_Children, uiCnd)
Set uiCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "Button")
Set uiElmAr = uiElm.FindAll(TreeScope_Children, uiCnd)
'Buttonの6番目
Set uiElm = uiElmAr.GetElement(5)
'**********ここ
Set uiInvoke = uiElm.GetCurrentPattern(UIA_InvokePatternId)
uiInvoke.Invoke