![]() |
idHTTP Dateien lassen sich erst nach Programme öffnen
Delphi-Quellcode:
Hallo ich habe das Problem das sich th_upd.exe nicht öffnet. ich glaube das das daran liegt das idHTTP diese noch geöffnet hat und erst nach beenden des Programms der Icon der Datei erscheint.
procedure TForm1.Button1Click(Sender: TObject);
var stream: TFileStream; begin stream:=TFilestream.create('ver_info.ini',fmcreate ); form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/enigmad/aktuelle_version.txt',stream); stream:=TFilestream.create('th_upd.exe',fmcreate ); form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/enigmad/th_upd.exe',stream); stream:=TFilestream.create('unrar.dll',fmcreate ); form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/unrar.dll',stream); form1.IdHTTP1.Disconnect; < versuch stream.Free; ShellExecute(Application.Handle,'open',PChar('th_upd.exe'),PChar(''),PChar(''),SC_DEFAULT); form1.close; end; kann mann irgendwie die Datei schliesen oder irgendwie eine kurtz zuvor Heruntergeladene Datei öffnen |
Re: idHTTP Dateien lassen sich erst nach Programme öffnen
Du musst jeden Stream freigeben, nicht nur den letzten:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stream: TFileStream; begin stream := TFilestream.create('ver_info.ini', fmcreate); try form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/enigmad/aktuelle_version.txt',stream); finally stream.Free; end; stream := TFilestream.create('th_upd.exe',fmcreate ); try form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/enigmad/th_upd.exe',stream); finally stream.Free; end; stream := TFilestream.create('unrar.dll',fmcreate ); try form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/unrar.dll',stream); finally stream.Free; end; ShellExecute(Application.Handle,'open',PChar('th_upd.exe'),PChar(''),PChar(''),SC_DEFAULT); form1.close; end; |
Re: idHTTP Dateien lassen sich erst nach Programme öffnen
Zitat:
die anderen werden ja automatisch finalisirt wenn das programm beendet wird.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stream: TFileStream; begin stream := TFilestream.create('ver_info.ini', fmcreate); form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/enigmad/aktuelle_version.txt',stream); stream.Free; stream := TFilestream.create('th_upd.exe',fmcreate ); try form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/enigmad/th_upd.exe',stream); finally stream.Free; end; stream := TFilestream.create('unrar.dll',fmcreate ); form1.idhttp1.Get('http://redplug.re.funpic.de/dlw/unrar.dll',stream); stream.Free; ShellExecute(Application.Handle,'open',PChar('th_upd.exe'),PChar(''),PChar(''),SC_DEFAULT); form1.close; end; |
Re: idHTTP Dateien lassen sich erst nach Programme öffnen
Die Try-Finally Bläche haben damit nichts zu tun, es ist ratsam diese bei Klassen (gerade bei Dateizugriffen) immer zu verwenden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01: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