Einzelnen Beitrag anzeigen

dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Prüfen, ob Bild im Internet erreichbar

  Alt 26. Nov 2009, 14:27
Ich habe jetzt hier von hathor eine Funktion gefunden, die schnell ist

Delphi-Quellcode:
function IsUrlValid(const url: string): boolean;
var
  hInet: HINTERNET;
  hConnect: HINTERNET;
  infoBuffer: array [0..512] of char;
  dummy: DWORD;
  bufLen: DWORD;
  okay: LongBool;
  reply: String;
begin
  hInet := InternetOpen(PChar(application.title),
    INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,nil,nil,0);
  hConnect := InternetOpenUrl(hInet,PChar(url),nil,0,
    INTERNET_FLAG_NO_UI,0);
  if not Assigned(hConnect) then
    //----------------------------------------------------------
    // If we couldn't open a connection then we know the url
    // is bad. The most likely reason is that the url is bad,
    // but it could be because of an unknown or badly specified
    // protocol.
    //----------------------------------------------------------
    result := false
  else
  begin // Create a request for the url.
    dummy := 0;
    bufLen := Length(infoBuffer);
    okay := HttpQueryInfo(hConnect,HTTP_QUERY_STATUS_CODE,
      @infoBuffer[0],bufLen,dummy);
    if not okay then
      // Probably working offline, or no internet connection.
      result := False
    else
      result := infoBuffer= '200';
    InternetCloseHandle(hConnect);
  end;
  InternetCloseHandle(hInet);
end;
Ich werd nacher (wenn der die Liste abgearbeitet hat) mal schauen, ob die richtig funktioniert hat.


Zitat von Sherlock:
Was ist, wenn das Bild bei jemandem steht, der keine direkten Links zulässt? Und dann bei jedem Link auf eines seiner Bilder plötzlich sowas hier liefert?

http://72.249.127.184/media/no_hotlinking.jpg

Das merkt das Programm aber nicht, oder?
Nein... aber ich kann dir versprechen, dass soetwas nicht kommt... die Bilder sind auf meinem Server
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat