IEをvb.netから操作しています。
webからファイルのダウンロードを自動で行いたいのですが、どのようにすればいいのかわからず悩んでいます。

画像の赤枠で括ってあるボタンの押下を、vb.netからの操作で行いたいのですが、どのようにすれば良いでしょうか。
InternetExplorer.Applicationに何らかのメンバ関数のようなものがあるのか、sendkeysを使うしかないのか、sendkeysを使うなら、具体的にどのキー操作を送れば良いのかなど、お教えいただけないでしょうか。

よろしくお願いします!

「IE操作時、ファイルのダウンロードボタン」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 1
この回答へのお礼

ぬおーー!!ありがとうございます!

ちょっと私には難解な感じですが、とりあえず頑張って読み解いてみます。
ありがとうございました!

お礼日時:2013/05/08 14:03

それね、なかなか簡単に押せないんだよー。


俺も自動的にダウンロードするアプリを仕事で作ることになったんだけどVBAで簡単に作ろうと思ったらそこで引っかかった。
諦めてWebClient使って直接ファイルをダウンロードすることにしたよ。


参考になるかわからないけど過去に同じような質問あったよ。
http://oshiete.goo.ne.jp/qa/1809850.html
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QYouTubeの動画のダウンロードは違法ですか?

YouTubeの動画のダウンロードをするために下記をダウンロードしました。

【2014年最新版】YouTubeの動画をダウンロード!【簡単保存】【Chrome】
http://note.chiebukuro.yahoo.co.jp/detail/n202231

このページの通りに実行し、2014/4/30当時は無事動画のダウンロードは
成功していましたが、2014/6/12に久しぶりに動画のダウンロードをして
みたら、

「無効化された拡張機能」という小窓が開き、「・ダウンロード・自動画質設定
for YouTube」が無効に設定されていました。(添付ファイル参照)

その後何度か試してみましたが、やはり動画のダウンロードは出来ませんでした。

YouTubeの動画のダウンロードは違法なんでしょうか?

Aベストアンサー

おはようございます。

んー。著作権侵害ではなく「会員規則違反」だと思います。
Youtubeは基本的にダウンロードを認めていません。

Youtubeはダウンロードを認めていないのは周知の事なので、クロー
ム側がブラウザの仕様をそれを配慮したのかもしれませんし、Youtube
側から依頼があったのかもしれませんね。

著作権的にはダウンロード自体は許可されているものに関しては問題
なく、著作者が認めていないダウンロードは著作権侵害の恐れがあり、
著作権侵害だと判断されたものに関しては刑事法のおまけもつく可能
性があります。

なお、著作権は親告罪です。著作者が訴えて初めて違法になりえる法
律です(他の第三者、例えば警察などが訴えることは出来ません)。

Qyoutubeユーチューブのダウンロード方法

youtubeユーチューブのダウンロード方法

youtubeのダウンロードが最近出来なくなってしまいました。
皆さんはどうやってyoutubeの動画を保存しているのか教えてください。

パソコンはよく判らないので、簡単なダウンロード方法がいいです。
何卒よろしくお願いいたします。

Aベストアンサー

youtubwを簡単にダウンロードできるので、sonyyoutubeを使っています。

youtubeのアドレスを入力して、BROWSEボタンを押すと
動画アドレスが出てきますよ。
他の動画サイトにもほとんど対応しているので、とりあえずアドレスを
入力してみると保存できるかもしれません。

http://www.sonyyoutube.com/

http://www.sonyyoutube.com/

Q【Youtube動画のダウンロード保存について】

【Youtube動画のダウンロード保存について】



Youtube初心者です。


Youtube自体に、動画をダウンロードして保存する
メニューはありますか? それとも、別のアプリ
ケーションが必要でしょうか?


あるいは、そもそもダウンロード保存することは違法
(閲覧のみ可能)なのでしょうか?


アドバイスお願いします。

Aベストアンサー

http://oshiete.goo.ne.jp/qa/6063480.html

ダウンロードはこのRealPlayerSPという無料ソフトが一番簡単です。YouTubeの動画を再生すると「このビデオをダウンロードする」と出ますので、クリックすればパソコンの「ビデオ」フォルダの中に「RealPlayerDownloads」というフォルダが出来てその中に動画ファイルが保存されます。

またRealPlayerSPは保存した動画をCD-R/RWに書き込みが出来ます。普通のDVDプレイヤーでTVで見ることが出来ます。約1時間分が書き込めます。

なお、RealPlayerにはPLUSという高機能有料版もあります。無料版のSPをダウンロードするとき、有料版のPLUSをダウンロードさせようとして、画面にいろいろ出てきますので、画面を良く見てインストールしてください。

また、ダウンロードした「解凍ファイル」は、インストール後、捨ててしまわずに、デスクトップに保存しておいてください。RealPlayerは時々トラブルが有りますので、そのときはアンインストールしてすぐに再インストールするためです。

http://oshiete.goo.ne.jp/qa/6063480.html

ダウンロードはこのRealPlayerSPという無料ソフトが一番簡単です。YouTubeの動画を再生すると「このビデオをダウンロードする」と出ますので、クリックすればパソコンの「ビデオ」フォルダの中に「RealPlayerDownloads」というフォルダが出来てその中に動画ファイルが保存されます。

またRealPlayerSPは保存した動画をCD-R/RWに書き込みが出来ます。普通のDVDプレイヤーでTVで見ることが出来ます。約1時間分が書き込めます。

なお、RealPlayerにはPLUSという高機能...続きを読む

Qyoutubeダウンロードは違法?

youtubeダウンロードサイトが重かったり怪しいとこが多いので自分で作ろうかと思ってます。

それ以前にyoutubeダウンロード自体は、違法ですか?

それと、youtubeダウンロードサイトを公開すること自体は違法ですか?

yes/noの結論と、理由もぜひ教えて下さい。

よろしくおねがいしますっ!

Aベストアンサー

著作権法では、個人が家庭内利用に限定してコピー(ダウンロード)することは認められています。
改正著作権法でも、違法にアップロードされたものをそれと知りながらダウンロードすると違法ですが、著作権者がアップロードを認めているものに関しては問題ないです。
エイベックスがにこにこ動画と包括契約を結ぶようですが、アップロードしたものを公認して金を取るという流れですから、今後はますますこういった著作権者が認めたコンテンツが増えてくると予想します。
規約でダウンロードを禁止していますが、さりとてプロテクトをかけるわけでもなく、一般的なリアルプレーヤーなどでダウンロードできてしまう。
私がよく比較に出す話ですが、有料動画サイトで規約も熟読し、年齢認証も複数回OKをクリックし、コンテンツを楽しんだ上で、いざ請求されると踏み倒したいという相談がよく出てきます。
サイトには「有料です」と大書してあり、確認も数回しないと入れないのに払いたくないという。
私もサイトの管理人が本当に支払ってほしければ前払いにするとか、カード番号の記入を求めるはずで、田舎の無人販売所のような商売はネットでは無理だから、払いたくなければ「規約など無視して」払うなと回答していますし、ほとんどの人が規約を無視するように回答しています。
つまり法律で認められている以上、盗られたくないと思えば防御をするべきで、無防備にしておいて規約だけを振りかざすのは考えが甘いと思います。
世の中善意の人ばかりではないのですから。

つまりご質問者が自分でやる分にはまったく問題ない、サイトを作ってダウンロードさせるとなると個人利用を越えるので、グレーになると思います。

著作権法では、個人が家庭内利用に限定してコピー(ダウンロード)することは認められています。
改正著作権法でも、違法にアップロードされたものをそれと知りながらダウンロードすると違法ですが、著作権者がアップロードを認めているものに関しては問題ないです。
エイベックスがにこにこ動画と包括契約を結ぶようですが、アップロードしたものを公認して金を取るという流れですから、今後はますますこういった著作権者が認めたコンテンツが増えてくると予想します。
規約でダウンロードを禁止していますが、さ...続きを読む

Qyoutubeをダウンロード

youtubeをダウンロード
youtubeの画像、音源ともにパソコンにダウンロードするやり方を教えてください。

Aベストアンサー

RealPlayerというフリーソフトが一番簡単です。CD-Rにも書き込めます。

RealPlayerで検索してその会社のサイトからダウンロード&インストールしてください。

インストールするときにRealPlayerPLUSという有料版を買わせようとして画面にいろいろ文句が出ますが、惑わされないようにしてRealPlayerSPをインストールしてください。

またRealPlayerで検索するとインストール方法のサイトも有りますから参考にしてください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング