Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Dateien mit der Wininet laden

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 01.08.2007, 21:11    Titel: Dateien mit der Wininet laden Antworten mit Zitat

Hi,
eine Frage an die Wininet-Exberden.
Mit folgendem FB-Code lade ich unter ME, und XP(Home) Dateien aus dem WWW:
Code:
#include once "windows.bi"
#include once "win\wininet.bi"
Screen 18, 32
Dim As HINTERNET inetOpen, inetOpenUrl
Dim As Zstring Ptr UserAgent = @"Fix von Foxi"
Dim As Zstring Ptr urlText = @"http://volta.freebasic.de/indbas.html"
Dim As Integer l = 50000, Erg = 0
Dim As Any Ptr img
Dim As Byte Ptr Buffer
Buffer = Allocate(l)
inetOpen = InternetOpen( UserAgent, INTERNET_OPEN_TYPE_DIRECT, Null, Null, 0 )
inetOpenUrl = InternetOpenUrl( inetOpen, urlText, Null, 0, _
              INTERNET_FLAG_RELOAD Or INTERNET_FLAG_NO_COOKIES, 0 )
If inetOpenUrl = Null Then
  Locate 10,15 : Print "Adresse wurde nicht gefunden !"
  Sleep 3000,1
Else
  InternetReadFile( inetOpenUrl, Buffer, l, @Erg )
  InternetCloseHandle( inetOpenUrl )
End If

InternetCloseHandle( inetOpen )
?Erg
Deallocate( Buffer )
Sleep
Bei Win2000 und XP(Prof) SP2 macht er Probleme.
InternetOpen funktioniert noch aber dann kommt nach ~20sek InternetOpenUrl mit Null und aus.
Mein erster Gedanke war Unterschiede in den API-Aufrufen 'InternetOpenUrlA' und 'InternetOpenUrlW', scheint aber nicht so zu sein.
Mit welchen Winversionen geht es, mit welchen nicht (als Admin)?
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 01.08.2007, 21:23    Titel: Antworten mit Zitat

Leider bin ich damit nicht wirklich vertraut,
das Beispiel aber laueft vollkommen ohne probleme bei mir

CVS 0.18 - Win XP Pro SP2

Code:

#include once "windows.bi"
#include once "win\wininet.bi"
Screen 18, 32
Dim As HINTERNET inetOpen, inetOpenUrl
Dim As Zstring Ptr UserAgent = @"Fix von Foxi"
Dim As Zstring Ptr urlText = @"http://home.arcor.de/eternal_pain/brick.exe"
Dim As Integer Erg = 0
Dim As Any Ptr img
Dim As Byte Ptr Buffer

inetOpen = InternetOpen( UserAgent, INTERNET_OPEN_TYPE_DIRECT, Null, Null, 0 )
inetOpenUrl = InternetOpenUrl( inetOpen, urlText, Null, 0, _
              INTERNET_FLAG_RELOAD Or INTERNET_FLAG_NO_COOKIES, 0 )
Dim as Integer l
l= inetOpenUrl
Buffer = Allocate(l)

If inetOpenUrl = Null Then
  Locate 10,15 : Print "Adresse wurde nicht gefunden !"
  Sleep 3000,1
Else
  InternetReadFile( inetOpenUrl, Buffer, l, @Erg )
  InternetCloseHandle( inetOpenUrl )
End If

InternetCloseHandle( inetOpen )
?Erg

open "url-load-brick.exe" for binary access write as #1
for a as integer=0 to l
    put #1,,Buffer[a]
next a
close #1


Deallocate( Buffer )
Sleep


Die heruntergeladene exe laesst sich ausfuehren und funktioniert fehlerfrei lächeln

Edit:
Das selbe koennte man doch eigentlich auch Problemlos mit sockets machen? HTTP_Get
Winsock, SDL oder was es sonst noch so gibt...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 03.08.2007, 09:11    Titel: Antworten mit Zitat

Danke Eternal_pain,
es scheint kein Problem der Windowsversion zu sein.
Irgendwie soll die 'Firewall' da ihre Finger drin haben?
Ich blick da aber noch nicht durch!
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 03.08.2007, 10:21    Titel: Antworten mit Zitat

wie ich schon sagte bin ich damit nicht sehr vertraut,
habe schon einmal die FTP Funktionen von WinInet genutzt
und fuer mich recht seltsame reaktionen seitens des Programms
bekommen, mal wurde die aktive internetverbindung getrennt,
oder wollte eine verbindung herstellen obwohl bereits eine besteht ect...
was die Firewall betrifft, (trifft mich zZ nicht mehr) wird das Programm
von Windows fuer gewoehnlich als Gefahr eingestuft und blockiert,
bei der ersten Meldung jedoch habe ich das mit "nicht mehr blockieren"
geloest und sie erschien nie wieder...
anders ist es auf groesseren netzwerken, da muss dieses direkt auf dem Server "freigeschaltet" werden, was unter umstaenden nicht von jedermann gemacht werden kann...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz