Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy http: Unbekanntes Protokoll (https://www.delphipraxis.net/155754-indy-http-unbekanntes-protokoll.html)

warg 6. Nov 2010 13:21

Indy http: Unbekanntes Protokoll
 
Was ist an diesem bitte falsch:
Delphi-Quellcode:
var FS:Tfilestream;
    URL:String;
    link: String;

ExtractFromExe('lnk',link);

URL:= link;
FS:=Tfilestream.Create(GetCurrentDir+'\update.exe',fmCreate);
IdHTTP1.Get(URL,FS);
FS.Free;
Wenn ich die Datei starte kommt dann die Meldung, dass es sich um ein unbekanntes Protokoll handelt und die Datei bleibt 0 Byte groß. Kann es sein, dass ich den Link gar nicht übergebe? Wie kann ich das Ergebnis von link als URL:= nutzen?

mkinzler 6. Nov 2010 13:30

AW: Indy http: Unbekanntes Protokoll
 
Was steht in Link drin?

warg 6. Nov 2010 14:07

AW: Indy http: Unbekanntes Protokoll
 
Link wird per einer anderen Datei in die Exe geschrieben. Es wird also per Edit-Feld vom eigentlichen Programm in die Exe ein Link, genannt lnk(Link) geschrieben.

Klaus01 6. Nov 2010 14:18

AW: Indy http: Unbekanntes Protokoll
 
Hallo,

kannst Du den Inhalt hier mal wiedergeben den die Variable link
hat nach dem er aus der Exe ausgelesen wurde?

Grüße
Klaus

warg 6. Nov 2010 14:34

AW: Indy http: Unbekanntes Protokoll
 
Ich habe nun diverses probiert und es scheint ein generelles Problem zu sein:
Delphi-Quellcode:
 InsOrReplaceInFile('lnk',GetCurrentDir+'\update.exe', Edit2.Text);
  ShowMessage('Das Updateprogramm wurde gespeichert.')
Als Edit2.Text lasse ich den Benutzer eine beliebige URL eingeben in Format von:
http://www.domain.tld/datei.exe

Klaus01 6. Nov 2010 14:38

AW: Indy http: Unbekanntes Protokoll
 
Vielleicht kannst Du einfach mal die Frage beantworten?

Grüße
Klaus

Delphi-Quellcode:
var FS:Tfilestream;
    URL:String;
    link: String;

ExtractFromExe('lnk',link);

showMessage(link);

URL:= link;
FS:=Tfilestream.Create(GetCurrentDir+'\update.exe',fmCreate);
IdHTTP1.Get(URL,FS);
FS.Free;

warg 6. Nov 2010 14:40

AW: Indy http: Unbekanntes Protokoll
 
Ich würde dir die Frage gerne beantworten, aber wenn ich Showmessagebox(URL) probiere scheint die Exe sich gar nicht mehr starten zu lassen. Es erscheint nicht mal mehr eine Form. Mir ist daher unbekannt was ausgegeben wird.

sx2008 6. Nov 2010 14:45

AW: Indy http: Unbekanntes Protokoll
 
Was vorher passiert und was irgendwo in einem Edit-Feld steht spielt doch erst mal keine Rolle.
Entscheidend ist was in der Variablen "link" bzw. "test" steht.
Delphi-Quellcode:
var FS:Tfilestream;
    URL:String;
    link, test: String;

ExtractFromExe('lnk',link);
test := Copy(link, 1, 40); // Damit ShowMessage nicht mit tausenden Zeichen überflutet wird
ShowMessageFmt('Link=<%s>', [test]); // Was wird hier ausgegeben?


URL:= link;
FS:=Tfilestream.Create(GetCurrentDir+'\update.exe',fmCreate);
IdHTTP1.Get(URL,FS);
FS.Free;

warg 6. Nov 2010 14:54

AW: Indy http: Unbekanntes Protokoll
 
Es wird folgendes ausgegeben:
Zitat:

Link: <>
Der Link wird anscheinend also gar nicht übergeben/angenommen.

Matze 6. Nov 2010 14:59

AW: Indy http: Unbekanntes Protokoll
 
Das liegt jedenfalls nicht an den Indy-Komponenten.

Weist du "link" nach der Deklaration "var link: string" überhaupt etwas zu?

warg 6. Nov 2010 15:06

AW: Indy http: Unbekanntes Protokoll
 
Die Idee kommt mir auch langsam, dass die Variable Link einfach komplett leer bleibt, aber heißt es nicht, dass ExtractFromExe('lnk',link); der Wert von lnk als "link" wiedergegeben wird? Im Beispiel war es so, dass man z.B. folgendes hatte:
Delphi-Quellcode:
label4.text = link;

Matze 6. Nov 2010 15:10

AW: Indy http: Unbekanntes Protokoll
 
Was macht denn ExtractFromExe? Diese Funktion kenne ich persönlich nicht.
Ich habe jedoch auch nur Turbo Delphi.

warg 6. Nov 2010 15:14

AW: Indy http: Unbekanntes Protokoll
 
Liste der Anhänge anzeigen (Anzahl: 1)
Man kann damit eine Information in eine Exe reinschreiben. Das ist halt praktisch, wenn jeder Benutzer sich eine eigene Exe mit den eigenen Einstellungen (z.B. eigenen Link) erstellen möchte. Ich habe die EditServer.pas mal angehangen. Diese gehört also nicht zum Standardumfang von einer Delphi IDE.

Matze 7. Nov 2010 08:13

AW: Indy http: Unbekanntes Protokoll
 
Den Prozeduraufruf machst du genau richtig.
Kann es sein, dass du den Text falsch in die Exe eingebunden hast und er daher nicht ausgelesen werden kann?

Aber ob das allg. so sinnvoll ist, die Exe-Dateien so zu verändern, wage ich etwas zu bezweifeln.

Gehe mal her und weise "link" manuell einen Wert zu. Das ist das erste, was ich in dem Fall machen würde. So siehst du sofort, woran es liegt.
Funktioniert es dann, liegt es an diesem Exe-Gedöns und nicht an Indy.


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