1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

[VB.NET] Versuche ein Updater Programm zu machen. Google findet nichts. HILFE!

Discussion in 'Programmieren' started by MTGxyz, Mar 24, 2012.

Thread Status:
Not open for further replies.
  1. MTGxyz

    MTGxyz Byte

    Also: Ich habe folgendes Problem:
    Ich versuche 'ne Updater Applikation zu machen und Benötige dazu eine Versionsdefinition im Internet. Nur weiß ich nicht, wie man auf .ini's im Internet zugreifen kann.
    Google findet aber nichts Gescheites!!
    Kann mir jemand helfen?
     
  2. kazhar

    kazhar Viertel Gigabyte

    die .ini runterladen und parsen?
     
  3. MTGxyz

    MTGxyz Byte

    Das Downloadscript funktioniert nicht:
    Code:
    Option Explicit On
    Module Module1
    
    
    
        Const INTERNET_OPEN_TYPE_PRECONFIG = 0
        Const INTERNET_FLAG_EXISTING_CONNECT = &H20000000
    
        Private Declare Function InternetOpen Lib "wininet.dll" Alias _
            "InternetOpenA" (ByVal lpszAgent As String, ByVal dwAccessType As Long, _
                             ByVal lpszProxyName As String, _
                             ByVal lpszProxyBypass As String, _
                             ByVal dwFlags As Long) As Long
        Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias _
            "InternetOpenUrlA" (ByVal hInternetSession As Long, _
                                ByVal lpszUrl As String, _
                                ByVal lpszHeaders As String, _
                                ByVal dwHeadersLength As Long, _
                                ByVal dwFlags As Long, _
                                ByVal dwContext As Long) As Long
        Private Declare Function InternetCloseHandle Lib "wininet.dll" _
            (ByVal hInet As Long) As Integer
        Private Declare Function InternetReadFile Lib "wininet.dll" _
            (ByVal hFile As Long, ByVal lpBuffer As String, _
             ByVal dwNumberOfBytesToRead As Long, _
             ByVal lNumberOfBytesRead As Long) As Integer
    
        Sub CopyURLToFile(ByVal URL As String, ByVal FileName As String)
            Dim hInternetSession As Long
            Dim hUrl As Long
            Dim DatNum As Integer
            Dim ByteAnz As Long
            Dim Buffer As String
            Dim DatInhalt As String
            On Error GoTo Fehler
    
            If Len(URL) = 0 Or Len(FileName) = 0 Then
                MsgBox("Fehlende URL")
                Exit Sub
            End If
            ' open an Internet session, and retrieve its handle 
            hInternetSession = InternetOpen("dummy", INTERNET_OPEN_TYPE_PRECONFIG, _
                                            vbNullString, vbNullString, 0)
            If hInternetSession = 0 Then
                MsgBox("Fehler bei InternetOpen")
                Exit Sub
            End If
            ' open the file and retrieve its handle 
            hUrl = InternetOpenUrl(hInternetSession, URL, vbNullString, 0, _
                                   INTERNET_FLAG_EXISTING_CONNECT, 0)
            If hUrl = 0 Then
                If hInternetSession Then InternetCloseHandle(hInternetSession)
                MsgBox("Fehler bei InternetOpenUrl")
                Exit Sub
            End If
            ' evtl vorhandene Datei löschen 
            On Error Resume Next
            Kill(FileName)
            On Error GoTo Fehler
            ' Daten sammeln 
            Do
                InternetReadFile(hUrl, Buffer, Len(Buffer), ByteAnz)
                If ByteAnz = 0 Then Exit Do
                DatInhalt = DatInhalt & Left(Buffer, ByteAnz)
            Loop
            ' Datei schreiben 
            DatNum = FreeFile()
        Open FileName For Output As #DatNum 
        Print #DatNum, DatInhalt 
        Close #DatNum 
    Fehler:
            If hUrl Then InternetCloseHandle(hUrl)
            If hInternetSession Then InternetCloseHandle(hInternetSession)
        End Sub
    
        Sub main()
    
            'CopyURLToFile "http://www.meineseite.de/bild1.jpg", _ 
            '              Ordner & Artikelnummer & "jpg" 
            CopyURLToFile("mtgxyz.cwsurf.de/update.ini", _
                          "c:\temp\update.ini")
        End Sub
    
    
    End Module
    
    Ich komm noch nicht einmal zum Compilen wegen den Fehlern:

    Fehler 1 "Open" ist nicht deklariert. Dateieingaben und -ausgaben sind im Microsoft.VisualBasic-Namespace verfügbar. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 68 5 Downloader
    Fehler 2 Methodenargumente müssen in Klammern stehen. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 68 10 Downloader
    Fehler 3 Komma, ")" oder eine gültige Ausdrucksfortsetzung erwartet. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 68 19 Downloader
    Fehler 4 Ausdruck erwartet. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 69 11 Downloader
    Fehler 5 Methodenargumente müssen in Klammern stehen. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 69 11 Downloader
    Fehler 6 "Close" ist nicht deklariert. Dateieingaben und -ausgaben sind im Microsoft.VisualBasic-Namespace verfügbar. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 70 5 Downloader
    Fehler 7 Ausdruck erwartet. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 70 11 Downloader
    Fehler 8 Methodenargumente müssen in Klammern stehen. C:\Users\mtg.morten\AppData\Local\Temporary Projects\Downloader\Module1.vb 70 11 Downloader
     
  4. kazhar

    kazhar Viertel Gigabyte

    muss das so kompliziert sein? :confused:

    URLDownloadToFile
     
  5. MTGxyz

    MTGxyz Byte

    Quelle: *KLICK'
    Suche Weiter
    Habe was gefunden:
    Code:
           Dim Daten As String
     objHttp = CreateObject("MSXML2.ServerXMLHTTP")
            Call objHttp.Open("GET", "http://www.yahoo.com/", False)
            Call objHttp.Send("")
            Daten = objHttp.ResponseText
    
    Nur VBE 2008 unterstützt keine Dateiverarbeitungen
     
    Last edited: Mar 24, 2012
  6. kalweit

    kalweit Hüter der Glaskugel

    ...so was passiert, wenn per Copy und Paste programmiert wird. :nixwissen
     
  7. kazhar

    kazhar Viertel Gigabyte

    kriegst du die datei jetzt heruntergeladen?
     
  8. MTGxyz

    MTGxyz Byte

    Ja, zumindest den Inhalt ;)
    Aber meine Behauptung nehme ich schnell zurück, weil es ein Objekt StreamWriter und StreamReader gibt
    Bin jetzt auf Folgenden Code gekommen:
    Code:
    Imports System.IO
    
    Module Module1
        Public Const Version As Integer = 6
        Public Const Name As String = "Musikdatenbank"
        Public Const server As String = "mtgxyz.cwsurf.de"
        Public Const dir As String = "/"
        Public Const file As String = "musik.ini"
    
        Sub main()
            Dim objHttp As Object, strresponge As String
            ' Inhalt einer Datei im Inet
            objHttp = CreateObject("MSXML2.ServerXMLHTTP")
            Call objHttp.Open("GET", "http://" & server & dir & file, False)
            Call objHttp.Send("")
            strresponge = objHttp.ResponseText
            If strresponge = Version Then
                MsgBox(Name & " ist aktuell")
            Else
                MsgBox("Es gibt eine Neue Version von " & Name & Chr(13) & "Versionsname: " & strresponge)
    
            End If
        End Sub
    
    
    End Module
    
    PS: Man benötigt nur eine Datei mit einem Wert ;) (Man braucht keine Datei)
    Kann geclosed werden.
    Danke an euch alle :danke:
     
    Last edited: Mar 24, 2012
Thread Status:
Not open for further replies.

Share This Page