
アドバイスをお願いします。
Excel-VBAで起動しているエクスプローラに対してハンドルを取得してクリックしたり、テキストボックスに文字をセットするプログラムを作って動かしています。
WindowsXPのときはできていたのですが、Windows7になったら正しく動作しなくなりました。
下のコードはエクスプローラのフォルダパスの右のボタン(添付ファイル参照)をクリックすべく、コーディングしたものです。
最後のSendMessage(hwnd, BM_CLICK, 0, 0) でクリックしたいのですが、その前にボタンのハンドルが取得できません。SDKのInspect Objectsで調べると、このボタンはClass="ToolbarWindow32"でName="前の場所"ですが、NativeWindowHandleが表示されず、Legacy.IAccessible.ChildID=1となっています。
このようなウィンドゥは別のやり方(IAccessible?)でないとクリックできないように感じていますが如何せん知識がありません。
どうしたらできるか、アドバイスよろしくお願いします。
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
ByVal hwndParent As Long, _
ByVal hwndChildAfter As Long, _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, lParam As Any) As Long
Const BM_CLICK = &HF5
Private hwnd As Long
Sub Click_button()
hwnd = FindWindow("CabinetWClass", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "WorkerW", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ReBarWindow32", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "Address Band Root", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "msctls_progress32", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ToolbarWindow32", vbNullString)
' この次が分からない。
RC = SendMessage(hwnd, BM_CLICK, 0, 0)
end sub

No.1ベストアンサー
- 回答日時:
カテゴリは Visual Basic の方が妥当なんではと。
http://www.ka-net.org/ribbon/ri14.html
ウィンドウを持ってる親の要素から AccessibleObjectFromWindow で IAccessible を取り出して、
http://okwave.jp/c257.html
にある GetAcc 関数で子孫要素を検索すればいいのではと。
で、得られたら accDoDefaultAction でクリック。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordに貼り付けた写真や図に、...
-
Windowsのウェブブラウザの左上...
-
ワードからパワーポイントのペ...
-
スピンボタンが印刷される。
-
謎の「戻る・進む」のボタンが...
-
エクセル2010について
-
エクスプローラの下の部分を非...
-
ウィンドウの開く位置を修正し...
-
スマホで YouTube のホーム画面...
-
急ぎ、サンダーバード 送信ボタ...
-
ダイアログボックスが画面の外...
-
Thunderbirdの受信メールがタブ...
-
Excel(エクセル)のハイパーリン...
-
Access2016でホームタブしか表...
-
Windows10、アクティブウィンド...
-
エクセルを開く都度の画面(縮...
-
win shotの起動について
-
サムネイル表示 高速化するた...
-
右クリックも左クリックもメニ...
-
Windows10 ポップアップ画面を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Wordに貼り付けた写真や図に、...
-
Windowsのウェブブラウザの左上...
-
スピンボタンが印刷される。
-
「クリックしてヘッダーを追加」
-
エクセル2010について
-
ログオフに鍵がついてる
-
カーソールが変になる
-
Macで使用するテキストエディッ...
-
FC2ブログとアマゾンについて
-
「ページの送信」について教え...
-
顔文字登録したいけど・・
-
LTspice /.subcktの使い方(zen...
-
ワードからパワーポイントのペ...
-
Internet Explorer ではこのペ...
-
インターネットオプション内の...
-
[シャットダウン]ボタンが表示...
-
お礼の書き込み手順
-
エクセルで印刷プレビューが開...
-
MS-IME 単語登録 [Ctrl]+[F6...
-
PCのWORKGROUPを変更
おすすめ情報