AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi MSDN InternetOpen(URL) Quelltext
Thema durchsuchen
Ansicht
Themen-Optionen

MSDN InternetOpen(URL) Quelltext

Ein Thema von SyntaxXx · begonnen am 17. Mai 2013 · letzter Beitrag vom 17. Mai 2013
Antwort Antwort
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

MSDN InternetOpen(URL) Quelltext

  Alt 17. Mai 2013, 11:41
verzeiht mir, wenn ich heute wieder viel von euch abverlange, aber ich brauchebei diesem Thema hier weider eure Hilfe.
Es geht darum, dass ich den Quelltext einer Seite aufrufen möchte, aber ohne die Verwendung irgendwelcher Komponenten.

Jetzt habe ich mal ein wenig bei MSDN rum gestöbert und habe "InternetOpen" und "InternetOpenURL" gefunden.
Das wäre ja schon einmal ein guter Anfang.
Nur leider weß ich jetzt nicht, wie ich weiter machen muss, um den Quelltext zu bekommen.

Finde nur Sachen wie "InternetReadFile".
Ich möchte aber ja keine Datei herunterladen, sonder mir nur den Quelltext anzeigen lassen.

Doch wie bekomme ich diesen jetzt?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: MSDN InternetOpen(URL) Quelltext

  Alt 17. Mai 2013, 12:03
Delphi-Quellcode:
Uses ..., UrlMon;

function DownloadInternetResource(const URL : WideString; const outStream : TStream ) : Boolean;
const
  BUFFER_SIZE = 8192;
var Stream : IStream;
    Buffer : array of byte;
  numBytes : longint;
        hr : HRESULT;
begin
  SetLength( Buffer, BUFFER_SIZE );

  // Achtung: D5 hat einen Bug bei der Deklaration von URLOpenBlockingStream
  // deshalb der Cast beim 3. Parameter

{$IFDEF VER130}
  if (URLOpenBlockingStreamW( NIL, PWideChar(URL), IStream(@Stream), 0, NIL) = S_OK) then
{$ELSE}
  if (URLOpenBlockingStreamW( NIL, PWideChar(URL), Stream, 0, NIL) = S_OK) then
{$ENDIF}
  begin
     hr:= Stream.Read (@Buffer[0], SizeOf(Buffer), @numBytes );
     while (hr = S_OK) do
     begin
       outStream.Write( Buffer[0], numBytes );
       hr:= Stream.Read (@Buffer[0], BUFFER_SIZE, @numBytes );
     end;

    Result := TRUE;
  end
  else
    Result := FALSE;
end;
Als Stream übergibst du einen Memory- oder StringStream, dann kannst du nach dem Aufruf auf die Daten zugreifen.
Nicht vergessen, den Rückgabewert der Funktion zu prüfen.
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz