 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 01.08.2007, 21:11 Titel: Dateien mit der Wininet laden |
|
|
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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 01.08.2007, 21:23 Titel: |
|
|
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
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 03.08.2007, 09:11 Titel: |
|
|
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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 03.08.2007, 10:21 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|