2017-03-31 33 views
2

CefSharpを使用して複数のファイルをダウンロードするにはどうすればよいですか?VB.netでCefSharpで複数のファイルをダウンロード

ページから複数のファイルをダウンロードする必要があります。これを行うにはjavaScriptを実行します。 最初に、私はChromeで証明し、初めはうまくいかず、最初のリンクをダウンロードするだけです。私は最初、私はそれを固定し、このコードで、何もダウンロードできませんでした、すべてのサイトがCefSharpを使ってChrome Content Settings-Chrome

に自動的複数のファイルのダウンロードを許可するプロパティ自動ダウンロードににを変更し、それを修正しました。

Public Class DownloadHandler 
Implements IDownloadHandler 

Public Event OnBeforeDownloadFired As EventHandler(Of DownloadItem) 
Public Event OnDownloadUpdatedFired As EventHandler(Of DownloadItem) 

Public Sub OnBeforeDownload(browser As IBrowser, downloadItem As DownloadItem, callback As IBeforeDownloadCallback) Implements IDownloadHandler.OnBeforeDownload 
    RaiseEvent OnBeforeDownloadFired(Me, downloadItem) 

    If Not callback.IsDisposed Then 
     Using callback 
      callback.[Continue](downloadItem.SuggestedFileName, showDialog:=False) 
     End Using 
    End If 
End Sub 

Public Sub OnDownloadUpdated(browser As IBrowser, downloadItem As DownloadItem, callback As IDownloadItemCallback) Implements IDownloadHandler.OnDownloadUpdated 
    RaiseEvent OnDownloadUpdatedFired(Me, downloadItem) 
End Sub 
End Class 

しかし私の問題は、最初のリンクをダウンロードするだけで、複数のファイルをダウンロードする必要があることです。 CefSharpに複数のファイルをダウンロードさせるにはどうしたらいいですか?

答えて

-1

「ページから複数のファイルをダウンロードする」とはどういう意味ですか?パブリックウェブサイトからファイルをダウンロードするだけですか?私はこれを行うためのいくつかの方法を考えることができます。たくさんのリンクをループしてすべてのファイルをダウンロードしたい場合は、下の画像のようにExcelでインベントリリストを設定できます。その後

enter image description here

、次のマクロを実行します。

Private Declare Function URLDownloadToFile Lib "urlmon" Alias _ 
    "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _ 
    szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long 

Sub DownloadFilefromWeb() 
    Dim strSavePath As String 
    Dim URL As String, ext As String 
    Dim buf, ret As Long 
    URL = Worksheets("Sheet1").Range("A2").Value 
    buf = Split(URL, ".") 
    ext = buf(UBound(buf)) 
    strSavePath = "C:\Users\rshuell\Desktop\Downloads\" & "DownloadedFile." & ext 
    ret = URLDownloadToFile(0, URL, strSavePath, 0, 0) 
    If ret = 0 Then 
     MsgBox "Download has been succeed!" 
    Else 
     MsgBox "Error" 
    End If 
End Sub 

ここで、1つのファイルをダウンロードしたい場合は、以下のスクリプトを実行してください。

Sub DownloadFileWithVBA() 

Dim myURL As String 
'Right-click on the link named 'Sample Address File' 
'Click 'Copy Link Location' 
'Paste the link below 
myURL = "http://databases.about.com/library/samples/address.xls" 

Dim WinHttpReq As Object 
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP") 
WinHttpReq.Open "GET", myURL, False 
WinHttpReq.Send 

myURL = WinHttpReq.ResponseBody 
    Set oStream = CreateObject("ADODB.Stream") 
    oStream.Open 
    oStream.Type = 1 
    oStream.Write WinHttpReq.ResponseBody 
    oStream.SaveToFile ("C:\Users\Excel\Desktop\address.xls") 
    oStream.Close 

End Sub 

これは、Excel VBA &、ないVB.NETであるが、それはあなたがあなたの目的を達成するのに役立つならば、答えとしてそれをマークしてください!

+0

ありがとう@ ryguy72、実際に私は別の方法でそれを解決しました。 JSでスクリプトを作成し、EvaluateScriptAsync関数を呼び出します。 –

関連する問題