2017-03-31 10 views
2

CefSharp를 사용하여 여러 파일을 다운로드하려면 어떻게해야합니까?VB.net에서 CefSharp로 여러 파일 다운로드

페이지에서 여러 파일을 다운로드해야하는데이를 수행하기 위해 javaScript를 실행합니다. 첫 번째로 Chrome에서 증명하고 처음에는 작동하지 않으며 첫 번째 링크 만 다운로드합니다. 내가 먼저, 내가 그것을 고정이 코드로, 아무것도 다운로드 할 수 없습니다, 모든 사이트 CefSharp 크롬 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 

이제 단일 파일을 다운로드하려는 경우 아래 스크립트를 실행하십시오.

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 

엑셀 & VBA하지 VB.NET, 그러나 당신이 당신의 목표를 달성하는 데 도움이 경우, 답변으로 표시하시기 바랍니다!

+0

감사합니다. @ ryguy72, 실제로 저는 다른 방법으로 해결했습니다. JS로 스크립트를 만들고 EvaluateScriptAsync 함수를 호출합니다. –