![]() |
Laufendes Programm sich selbst verschieben/ kopieren
Hallo Leute,
ich habe ein Programm geschrieben, welches ich so ausstatten möchte, dass es sich selbst in einen anderen Ordner verschiebt. Ich habe schon viel gegooglet, aber dazu leider nix gefunden. Ich denke, das Problem liegt daran, dass es sich ja während es läuft verschieben soll. Freue mich schon auf Eure Antworten!:thumb: Viele Grüße, Elko |
Re: Laufendes Programm sich selbst verschieben/ kopieren
Lass das Programm einfach eine Batch-Datei erstellen und ausführen :)
|
Re: Laufendes Programm sich selbst verschieben/ kopieren
du könntest die I/O checks peer compilerdiriktive abstellen. Vllt gehts dann ohne fehlermeldung.
gruß snow |
Re: Laufendes Programm sich selbst verschieben/ kopieren
Soll ich dazu dann CopyFile benutzen? Wenn ja, was soll ich dann als Parameter angeben?
Gruß, Elko |
Re: Laufendes Programm sich selbst verschieben/ kopieren
Er redet von einem LAUFENDEN Programm ! Sowas seltsames gabs doch letztens erst. :shock:
|
Re: Laufendes Programm sich selbst verschieben/ kopieren
ja, ich rede vom selbstständigen Kopieren eines laufendes Proramms in ein anderes Verzeichnis :roteyes:
gibts danicht noch n andere Möglichkeit als mit einer Batch Datei? zB. CopyFile? :dp: |
Re: Laufendes Programm sich selbst verschieben/ kopieren
Delphi-Quellcode:
so gehts... (wenn das projeckt Project1.exe heißt)
var filepathold : string;
filepathnew : string; streamold : Tstream; streamnew : Tstream; begin {$I-} filepathnew:='I:\delphi\testContainer\Project1.exe'; filepathold:=ExtractFilePath(ParamStr(0))+'Project1.exe'; streamnew := TFilestream.Create(filepathnew,fmCreate); streamold := TFilestream.Create(filepathold,fmShareDenyNone); streamnew.CopyFrom(streamold,streamold.Size); streamold.Free; streamnew.Free; {$I+} gruß snow |
Re: Laufendes Programm sich selbst verschieben/ kopieren
Zitat:
|
Re: Laufendes Programm sich selbst verschieben/ kopieren
Hi Elko,
natürlich geht es mit CopyFile. Ich hatte jedenfalls keine Probleme. Nur verschieben kannst du es nicht, dazu muss es vorher beendet werden.
Delphi-Quellcode:
Mfg
var
OldName, NewName: String; Overwrite: Boolean; begin OldName := ParamStr(0); NewName := 'D:\' + ExtractFileName(OldName); Overwrite := false; CopyFile(PChar(OldName), PChar(NewName), Overwrite); end; FAlter |
Re: Laufendes Programm sich selbst verschieben/ kopieren
Zitat:
Zitat aus Delphi-treff Zitat:
Delphi-Quellcode:
das was du meinst ist
function GetApplicationDirectory: String;
begin Result := ExtractFilePath(ParamStr(0)); end;
Delphi-Quellcode:
das klappt aber nur wenn Forms eingebunden ist.
Application.Exename
gruß snow |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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