• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Webbrowser içeriğini otomatik kaydetme ?

Katılım
12 Eylül 2006
Mesajlar
204
Excel Vers. ve Dili
Excel 2010 Pro Plus Türkçe
Merhaba;
Webbrowser içinde açılan pdf'yi c dizinine otomatik olarak nasıl kaydedebilirim?
 
Gerekli nesneler:
- UserForm
- WebBrowser
- CommandButton


WebBrowser adı: WebBrowser1
Kaydedeceği yer: Desktop (Masaüstü) Evn Download klasörüne DENEME.pdf olarak...


UserForm_Activate olayındaki WebBrowser Url'sini de kendi adresinizle değiştirirsiniz.


Module kodları;

Kod:
Sub Evn()
    Dim i As Integer, WShel As Object, a As String
    Set WShel = CreateObject("WScript.Shell")
    a = WShel.SpecialFolders("Desktop")

    Const MsgText = "Dosyalar İndirilsin mi ?"
    Const MsgHdr = "İnidiriliyor..."
    If MsgBox(MsgText, vbYesNo Or vbMsgBoxRtlReading Or vbExclamation, _
    MsgHdr) = vbYes Then
    MkDir (a & "\Evn Download")
    URL$ = UserForm1.WebBrowser1.LocationURL
    dosya$ = a & "\Evn Download" & "\DENEME.PDF"
    DownloadFile URL$, dosya$
    End If
    i = Empty:  a = vbNullString: Set WShel = Nothing
End Sub

Function DownloadFile(ByVal URL$, ByVal LocalPath$) As Boolean
    Dim XMLHTTP, ADOStream, FileName
    On Error Resume Next: Kill LocalPath$
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    XMLHTTP.Open "GET", Replace(URL$, "\", "/"), "False"
    XMLHTTP.send
    If XMLHTTP.StatusText = "OK" Then
    Set ADOStream = CreateObject("ADODB.Stream")
    ADOStream.Type = 1: ADOStream.Open
    ADOStream.Write XMLHTTP.responseBody
    ADOStream.SaveToFile LocalPath$, 2
    ADOStream.Close: Set ADOStream = Nothing
    DownloadFile = True
    Else
    MsgBox "Bağlantı sağlanamadı", vbInformation, "Hata !"
    End If
    Set XMLHTTP = Nothing
End Function

UserForm kodları;
Kod:
Private Sub CommandButton1_Click()
   Call Evn
End Sub

Private Sub UserForm_Activate()
    WebBrowser1.Navigate "Buraya pdf adresini yazın"
End Sub

İyi akşamlar.
 
Murat Bey;
Öncelikle ilgilendiğiniz için teşekkür ederim.
Ama XMLHTTP nesnesi işimi görmüyor.
Buradaki Amaç Webbrowser içinde açılan pdf yi kaydetmek.
pdf nin normal bir adresi yok. formun post edilmesinden sonra karşımıza çıkıyor.
(E Bildirge Sitesindeki Pdf Uzantılı Tahakkuk fişini indirmeye çalışıyorum.)
 
Kodlari denediniz mi ? Denemeden olmaz demeyin.
Web üzerinde gördüğünüz her şeyin bir adresi vardir, WebBrowserda görüntülenen pdf dosyasinin da bir adresi var ve verdiğim bu kodlarla o pdf dosyasini kaydedebilirsiniz.
 
Sn turk-x
PDF dosyası WebBrowserda tamamen açıldıktan sonra çalıştırılacak olan aşağıdaki kodu deneyiniz. PDF dosyası D'ye indirilen.pdf olarak inmesi gerek
Kod:
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


Private Sub CommandButton2_Click()
Dim strPath As String
    Dim strURL As String
    strPath = "D:\indirilen.pdf"
    strURL = Me.WebBrowser1.LocationURL
    URLDownloadToFile 0&, strURL, strPath, 0&, 0&
    
End Sub
 
Son düzenleme:
Murat Bey;
Kodları Denemiştim. Sorun şu Açılan Pdf dosyasının adresi sabit https://ebildirge.sgk.gov.tr/WPEB/TahakkukFisi.pdf?rapor=TahakkukFisi&n=0 bu adres üzerinden pdfleri görüntüleme yapıyorlar. Pdf nin özelliklerine bakıldığında da pdf nin kayıtlı adresi olarak aynı adres görünüyor. Ama bu adresi farklı bir pencede yada sorgulama ile açınca pdf açılmıyor. Açılmasını önleyen muhtamel faktörler oturumid,Dönemi belirleyen post verisi vs.

Sayın Ömer Bey; Sizin Önerdiğiniz yöntemde de murat beyin yöntemi gibi url üzerinden işlem yapmaya çalıştığı için sorunu çözmüyor.

ExecWB komutuyla webbrowserin içeriği manuel olarak kaydedilebiliyor. Ama bunu otomatik olarak yapmam gerekiyor
ilgilendiginiz ve zaman ayırdığınız için her ikinizede teşekkür ederim.
 
Anladım Sn. turk-x .

ExecWB ile görünebilen bir içerik görüntülenir, kaydedilir, yazdırılır vs. sizin gördüğünüz pdf'i biz göremiyoruz..
Şu an elimizde sadece bu adres var ve bu adreste sadece kullanıcı girişi yapıldığında görüntüleniyor.
O hâlde bana giriş bilgilerinizi mail atarsanız bakarım.
 
Son düzenleme:
Geri
Üst