Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi MSDN InternetOpen(URL) Quelltext (https://www.delphipraxis.net/174906-msdn-internetopen-url-quelltext.html)

SyntaxXx 17. Mai 2013 11:41

MSDN InternetOpen(URL) Quelltext
 
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?

sx2008 17. Mai 2013 12:03

AW: MSDN InternetOpen(URL) Quelltext
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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