
IEをvb.netから操作しています。
webからファイルのダウンロードを自動で行いたいのですが、どのようにすればいいのかわからず悩んでいます。
画像の赤枠で括ってあるボタンの押下を、vb.netからの操作で行いたいのですが、どのようにすれば良いでしょうか。
InternetExplorer.Applicationに何らかのメンバ関数のようなものがあるのか、sendkeysを使うしかないのか、sendkeysを使うなら、具体的にどのキー操作を送れば良いのかなど、お教えいただけないでしょうか。
よろしくお願いします!

No.2ベストアンサー
- 回答日時:
Windows7 IE9ですが、↓で動きました
Private Delegate Function D_EnumChildWindowsProc(ByVal hWnd As IntPtr, ByVal lParam As IntPtr) As IntPtr
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As IntPtr, ByVal hWnd2 As IntPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As IntPtr
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As IntPtr, ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr
Private Const WM_ACTIVATE = &H6
Private Const BM_CLICK = &HF5
Private Const WM_GETTEXT = &HD
Private Const WM_QUIT = &H10
Private Const NAVDIR_NEXT = &H5
Private Const NAVDIR_FIRSTCHILD = &H7
Private Const CHILDID_SELF = &H0
Private Const OBJID_CLIENT = &HFFFFFFFC
Private Declare Function AccessibleObjectFromWindow Lib "oleacc" _
(ByVal hWnd As IntPtr, ByVal dwId As IntPtr, _
ByRef riid As Guid, <MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As IntPtr
Declare Function AccessibleChildren Lib "oleacc" _
(ByVal paccContainer As IAccessible, ByVal iChildStart As IntPtr,
ByVal cChildren As IntPtr, <[Out]()> ByVal rgvarChildren() As Object, ByRef pcObtained As IntPtr) As IntPtr
Private IID_IAccessible As Guid = New Guid(&H20400, 0, 0, {&HC0, 0, 0, 0, 0, 0, 0, &H46})
Sub FileDownLoad_Proc()
Dim strCaption As String
Dim PWnd As IntPtr
Dim cWnd As IntPtr
' 親ウィンドウ取得
strCaption = "○○○○ - Windows Internet Explorer"
While PWnd = 0
PWnd = FindWindowEx(0, 0, "IEFrame", strCaption)
System.Threading.Thread.Sleep(50)
End While
' 通知バーのハンドル
While cWnd = 0
cWnd = FindWindowEx(PWnd, 0&, "Frame Notification Bar", vbNullString)
System.Threading.Thread.Sleep(50)
End While
' 通知バーボタン群のハンドル
Dim hChild As IntPtr = FindWindowEx(cWnd, 0&, "DirectUIHWND", vbNullString)
Dim objAcc As IAccessible = Nothing
AccessibleObjectFromWindow(hChild, OBJID_CLIENT, IID_IAccessible, objAcc)
If Not IsNothing(objAcc) Then
ClickPreserve(objAcc)
While cWnd = 0
cWnd = FindWindowEx(PWnd, 0&, "Frame Notification Bar", vbNullString)
System.Threading.Thread.Sleep(50)
End While
SendMessage(cWnd, WM_QUIT, 0, 0&)
End If
End Sub
Private Sub ClickPreserve(ByVal acc As IAccessible)
Dim i As Long
Dim count = acc.accChildCount
Dim lst(count - 1) As Object
If count > 0 Then
AccessibleChildren(acc, 0, count, lst, 0)
If Not IsNothing(lst) Then
For i = LBound(lst) To UBound(lst)
With lst(i)
'On Error Resume Next
'Debug.Print("ChildCount: " & .accChildCount)
'Debug.Print("Value: " & .accValue(CHILDID_SELF))
'Debug.Print("Name: " & .accName(CHILDID_SELF))
'Debug.Print("Description: " & .accDescription(CHILDID_SELF))
'On Error GoTo 0
'保存ボタンを見つけたらクリック(デフォルトアクション)する
If .accName(CHILDID_SELF) = "保存" Then
System.Threading.Thread.Sleep(500)
.accDoDefaultAction(CHILDID_SELF)
System.Threading.Thread.Sleep(500)
End If
End With
ClickPreserve(lst(i)) '再帰
Next
End If
End If
End Sub
ぬおーー!!ありがとうございます!
ちょっと私には難解な感じですが、とりあえず頑張って読み解いてみます。
ありがとうございました!
No.1
- 回答日時:
それね、なかなか簡単に押せないんだよー。
俺も自動的にダウンロードするアプリを仕事で作ることになったんだけどVBAで簡単に作ろうと思ったらそこで引っかかった。
諦めてWebClient使って直接ファイルをダウンロードすることにしたよ。
参考になるかわからないけど過去に同じような質問あったよ。
http://oshiete.goo.ne.jp/qa/1809850.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのファイルのダウンロ...
-
ZIPの拡張子のついたURLがダウ...
-
HTMLページが勝手にダウンロー...
-
ASPでバイナリーファイルをダウ...
-
java_run.batがダウンロードで...
-
仮想マシンにnetbeansをインス...
-
CSVファイルをサーバからクライ...
-
Webサイトから、txtファイルを...
-
CSVダウンロード後のアラート表示
-
ダウンロードについて
-
HTMLからフォルダを開きたい
-
直リンク禁止
-
htmlファイルがソースで表示される
-
メールに添付されたhtmlファイ...
-
googleサーチコンソールで、重...
-
XREA使用で作成したHTMLファイ...
-
iPadの標準ブラウザでローカルH...
-
<a href="/">トップへ</a> こ...
-
古いMacの画像が見たいけど見ら...
-
画像ボタンにフォーカスさせない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webサイトから、txtファイルを...
-
HTMLページが勝手にダウンロー...
-
【HTML】1クリックで複数ファイ...
-
java_run.batがダウンロードで...
-
URLDownloadToFile でダウンロ...
-
VBA URLDownloadToFileについて
-
○○.ico→○○.jpgやbmpなど...
-
イラストレーターのaiファイル...
-
HTTP機能で、サーブレットでPDF...
-
ファイルをダウンロードすると...
-
ホームページビルダー8を使って
-
ZIPの拡張子のついたURLがダウ...
-
WEB上でPDF閲覧のみにしたいです。
-
リッチテキスト入力した内容(ti...
-
VC++でHTTPプロトコルを用いた...
-
VBAでIEのファイルを自動的にダ...
-
無償で使えた Turbo D...
-
Win64bitのPHP5.4をダウンロー...
-
.torrentについておしえてください
-
javascriptでファイルダウンロ...
おすすめ情報