AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Download aus INet - fertiger Code gesucht

Download aus INet - fertiger Code gesucht

Ein Thema von Guido Eisenbeis · begonnen am 3. Jan 2020 · letzter Beitrag vom 10. Jan 2020
Antwort Antwort
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#1

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 00:48
..."Deshalb frage ich hier, ob jemand bewährten Code hat, der vielleicht schon einige Hürden umschifft"...

All das was du "jetzt" suchst, ist die eigentliche "interne" zertifizierte Funktion der bekannten "Installer" (Inno,Wise,...)!
Sorry für meine Meinung:
- vergiss deinen Ansatz als "Master-Installer" samt GUI als pures Delphi-Programm
- entwickle meherere Delphi-DLLs als AddOn/PlugIn für bekannte Standard-Installer (die haben alle ein DLL-API)
- mache so wenig wie möglich in den nativ DLLs, nutze die Installerscripts... weil deren Interpreter sind Security geprüft und "bekannt"
- zu 99% kannst du per Installerscript+notfalls ein paar nativ DLL Calls all das machen, was du in den letzten Wochen komplett selbst gemacht hast
- du glaubst, jetzt fehlen dir nur noch zwei drei Funktionsaufrufe um was aus dem INet zu laden und auszuführen, nur genau da verkennst du aus meiner Sicht die reale Sicherheits-Lage... denn DAS ist es, was die Standardinstaller nach Jahre langer Entwicklung SICHER drin haben!

-> sowas mal so nebenbei hier oder sonstwo als fertigen Code ausgehändigt zubekommen... ich glaube es gab mal irgendwo gute Berichte/Analysen zu (bösen) MalWare Installern, welche sogut waren, das sie nur bei Realinstallationen und nicht bei VirtuellenMaschinen ihren Werbemist nachgeladen haben... dort wurden ein paar funktionierende Nachlademechanismen ganz gut beschrieben... mein TIP: lass es und nutze Standardinstaller, welche du nur für GUI und lokale nativ Sachen per DLL erweiterst!
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 01:57
Danke für deine Infos und deine Meinung! Ich werde es mir ansehen.

Guido.
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 02:23
@mensch72

Ich habe mir Inno Setup gerade kurz angesehen und konnte außer dem Generieren von anklickbaren Download-Links keine großartigen Download Fähigkeiten entdecken. Wahrscheinlich im Prinzip wie TLinkLabels. ... Wenn ich mit Inno Setup bei Null anfangen würde, dann würde es mindestens nochmals ein paar Wochen dauern, bis ich etwas habe. Und ob dann die Dinge damit alle umgesetzt werden können, die benötigt werden, kann ich vielleicht erst erkennen, wenn es nicht weiter geht.

Kennst du dich damit aus und kannst mir dabei helfen? Ansonsten ist mir das zu heikel, wenn ich nicht mal weiß, ob überhaupt alles umsetzbar ist.

Nachtrag: Scheinbar habe ich mich geirrt bezüglich der Download-Fähigkeiten. Es gibt Plugins wie das "Inno Download Plugin", die einen Blick wert sein könnten.

Geändert von Guido Eisenbeis ( 4. Jan 2020 um 02:29 Uhr)
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
929 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 09:15
Da hier TIdHTTP empohlen wurde: Würde ich nicht mehr benutzen, v.a. nicht mehr Plattform übergreifend, für SSL braucht man da zusätzlich OpenSSL.
Die Alternative bessere TNetHTTPClient nutzt die jeweilige Betriebssystem-SSL-Implementierung, deutlich einfacher und v.a. unterstützt auch alle neuen SSL-Protokolle.
Aber generell würde auch ich für das grundlegende Problem auch zu InnoSetup tendieren und den Mehraufwand in Kauf nehmen.
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 17:06
Die Alternative bessere TNetHTTPClient nutzt die jeweilige Betriebssystem-SSL-Implementierung, deutlich einfacher und v.a. unterstützt auch alle neuen SSL-Protokolle.
Vielen Dank für deinen Hinweis!

Leider ist es mir nicht gelungen, Delphi-Code zu finden, der auch nur eine einzige Datei (ca. 5 MB) downloaded. Das Meiste ist aus den frühen 2000ern! Die Codes sind entweder nicht zum Laufen zu bringen (lassen sich nicht kompilieren, weil alles veraltet ist), oder sie laden von den 5 MB nur 40 KB runter. Aktuelle Codes scheint es nicht zu geben.

Hast du ein Code Beispiel für TNetHTTPClient?
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.119 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 18:01
Leider ist es mir nicht gelungen, Delphi-Code zu finden, der auch nur eine einzige Datei (ca. 5 MB) downloaded. Das Meiste ist aus den frühen 2000ern! Die Codes sind entweder nicht zum Laufen zu bringen (lassen sich nicht kompilieren, weil alles veraltet ist), oder sie laden von den 5 MB nur 40 KB runter. Aktuelle Codes scheint es nicht zu geben.
TDownloadURL gibt es beispielsweise seit ich mich erinnern kann, und der komplette Code sieht seit eher so aus:
DownloadURL1.Execute;
Ach verdammt, ich wollte ja keinen fertigen Code posten.

Dann mach ich's hier besser:
Hast du ein Code Beispiel für TNetHTTPClient?
Delphi-Referenz durchsuchenSystem.Net.HttpClientComponent.TNetHTTPClient.Get
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 18:37
TDownloadURL gibt es beispielsweise seit ich mich erinnern kann, ...
Das ist scheinbar das Problem, denn in Delphi 10.3 finde ich die Componente nicht.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
929 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Download aus INet - fertiger Code gesucht

  Alt 4. Jan 2020, 21:44
Die einfachste Variante, wenn man nur eine Datei herunterlädt (läuft bei mir in sowieso in einem Thread, daher geht auch die Fortschrittsanzeige und der direkte Aufruf von ohne get an TNetHTTPClient):

Delphi-Quellcode:
var httpClient: TNetHTTPClient;
    ms:TStream;
begin
  httpClient:=TNetHTTPClient.create(nil);
  try
    httpClient.OnAuthEvent:=NetHTTPClientAuthEvent;
    httpClient.OnReceiveData:=NetHTTPClientReceiveData;
    httpClient.ConnectionTimeout:=60000;
    httpClient.ProxySettings := TProxySettings.Create(xxx,yyy);
    ms:=TFileStream.Create(localFileName,fmCreate or fmOpenReadWrite);
    try
      httpClient.Get('https://'+remoteFileName,ms);
    finally
      ms.Free();
    end;
  finally
    httpClient.free();
  end;

procedure TForm.NetHTTPClientAuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType);
begin
  AUserName:=xxx;
  APassword:=yyy;
end;

procedure TForm.NetHTTPClientReceiveData(const Sender: TObject; AContentLength, AReadCount: Int64; var Abort: Boolean);
begin
  //todo: Fortschrittsanzeige
end;
Ob Du ein OnAuthEvent oder ProxySettings benötigst hängt an der jeweiligen Konfiguration, wahrscheinlich eher nein und man kommt natürlich auch ohne OnReceiveData aus).
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Download aus INet - fertiger Code gesucht

  Alt 5. Jan 2020, 02:31
@philipp.hofmann

Dein Code hat mir den Einstieg ermöglicht. Ich bin nun in der Lage, eine Datei herunterzuladen, eine Fortschrittsanzeige zu zeigen und einen laufenden Download abzubrechen.

Vielen Dank für deine Hilfe!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:22 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