AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

URL wininet ermitteln

Ein Thema von Pascal95 · begonnen am 22. Sep 2011 · letzter Beitrag vom 26. Sep 2011
Antwort Antwort
Pascal95
(Gast)

n/a Beiträge
 
#1

AW: URL wininet ermitteln

  Alt 23. Sep 2011, 13:44
Ich habe es geschafft !



Ohne Deine Hilfe hätte ich das nicht geschafft !

Als Dank dafür veröffentliche ich den Code, um die Weiterleitungs-URL herauszufinden:
Delphi-Quellcode:
function GetRedirection(const Url: string): string;
var
  hInet: HINTERNET;
  hConnect: HINTERNET;
  infoBuffer: array [0..512] of char;
  dummy: DWORD;
  bufLen: DWORD;
  okay: longbool;
  reply: string;
begin
  Result := '?';

  hInet := InternetOpen(PChar('a browser...'), INTERNET_OPEN_TYPE_PRECONFIG,
    nil, nil, 0);

  hConnect := InternetOpenUrl(hInet, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD +
    INTERNET_FLAG_NO_AUTO_REDIRECT, 0);

  if not Assigned(hConnect) then
    Exit
  else
  begin
    dummy := 0;
    bufLen := Length(infoBuffer);
    okay := HttpQueryInfo(hConnect, HTTP_QUERY_STATUS_CODE,
      @infoBuffer[0], bufLen, dummy);
    if not okay then
      Exit
    else
    begin
      reply := infoBuffer;
      if (reply = '301') or (reply = '302') then
      begin
        dummy := 0;
        bufLen := Length(infoBuffer);
        okay := HttpQueryInfo(hConnect, HTTP_QUERY_LOCATION,
          @infoBuffer[0], bufLen, dummy);
        if not okay then
          Exit
        else
        begin
          reply := infoBuffer;
          if reply <> 'then
            Result := reply;
        end;
      end
      else
        Exit;
    end;
    InternetCloseHandle(hConnect);
  end;
  InternetCloseHandle(hInet);
end;
Hoffentlich kann jemand das gebrauchen !

Nochmals vielen Dank,
liebe Grüße,
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#2

AW: URL wininet ermitteln

  Alt 23. Sep 2011, 14:24
Ohne Deine Hilfe hätte ich das nicht geschafft !
Gern geschehen.

Eine Frage habe ich jedoch:

Delphi-Quellcode:
var
  hConnect: HINTERNET;
begin
  ...
  if not Assigned(hConnect) then
    Exit
  else
    ...
end;
Ist HINTERNET als Zeiger definiert? Ansonsten ist Assigned falsch und du solltest stattdessen auf 0 überprüfen.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Pascal95
(Gast)

n/a Beiträge
 
#3

AW: URL wininet ermitteln

  Alt 24. Sep 2011, 13:42
Ja,

in der wininet.pp:
Delphi-Quellcode:
type
     HINTERNET = LPVOID;
und in der base.inc:
Delphi-Quellcode:
type
...
     LPVOID = pointer;
Hoffe, dass das passt

Pascal
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#4

AW: URL wininet ermitteln

  Alt 26. Sep 2011, 09:51
Hoffe, dass das passt
Jupp, das passt. Ich hab nur reagiert, da die meiste Zeit die H...-Typen von Windows als Cardinal/QWord definiert sind...

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  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 22:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz