![]() |
Frage zum RunFile
Hallo,
Könnte mir jemand weiterhelfen, und mir beibringen, was an diesem QuellCode falsch ist?
Delphi-Quellcode:
Ich will's noch n bissel näher erklären:
begin
NKP := GetCurrentDir + '\Datas\' + 'NeuesKonto.exe'; RunNeuesKonto.FileName := NKP; RunNeuesKonto.Execute; end; Also Delphi meldet keiner fehler. Jediglich die EXE-Datei wird nicht ausgeführt, obwohl sie natürich im CurrentDir\Datas\ steht. Wenn ich dem RunFile Obj. gleich von Anfang an NKP zuweise, und es z.B. über einen Button starte, dann geht es auch. Aber wenn ich den FileName im Betrieb des Progs. ändere, passiert gar nichts. Mach ich irgendetwas falsch? Danke |
Re: Frage zum RunFile
Du spielst Roulette... Du weisst ja garnicht, was das CurrentDir ist! Win hat immer nur EIN CurrentDir, und das kann dir von anderen Programmen schnell "verbogen" werden. Besser wäre es mit absoluten Pfaden zu arbeiten, bzw. von der Stelle deiner EXE auszugehen.
gruss, dizzy |
Re: Frage zum RunFile
Du sagst "currentdir\datas" ist das Verzeichnis ?
Dann probiers mal mit '.\datas\'+'NeuesKonto.exe' :) |
Re: Frage zum RunFile
Das CurrentDir ist meiner Meinug nach der Ordner, in dem das EXE-File ausgeführt wird. Und wenn ich dass CurrentDir in ein Edit auslesen lasse, stimmt dass auch überein.
|
Re: Frage zum RunFile
Das mag an sich stimmen, zunächst. Aber das ist nicht sichergestellt. Des weiteren dürfte GetCurrentDir das Varzeichnis mit abschließenden "\" zurückgeben. Dann hast du ein "\" zuviel in deiner Angabe!!
gruss, dizzy |
Re: Frage zum RunFile
Current Dir gibt es ohne ein weitere \ zurück.
Der Fehler leigt aber woanders. Hab's gefunden. Ich wollte die Prozedur im FomrCreate ausführen, und scheinbar lassen sich im FormCreate keine FileRuns ausführen. Liege ich da richtig? Zitat:
Trotzdem Dank für eure Hilfe! |
Re: Frage zum RunFile
Weil ein anderes Programm (das parallel zu deinem ausgeführt wird) das verstellen kann:)
Bsp.: Du startest dein Prog. im Verzeichnis: C:\meinprogramm Danach startest du ein anderes das im Verzeichnis: C:\einanderes liegt. Das andere Programm stellt den "CurrentPath" um auf C:\einanderes und schon semmelt dein Programm. |
Re: Frage zum RunFile
Aha. Wusste ich gar nicht. Danke.
Und wie stehts mit deiner Variante. '.\datas\...' kann die auch verstellt werden? |
Re: Frage zum RunFile
Moin Daniel,
oder jemand ruft das Programm über einen Link auf in dem das Arbeitsverzeichnis (= CurrentDir) anders eingestellt ist als es für die Ausführung des Programmes notwendig ist. Auch durch Öffnen/Speichern Dialoge lässt sich das CurrentDir "verbiegen" Die sicherste Methode relativ zur Position der eigenen Exe zu arbeiten dürfte sein, sich den Pfad beim Programmstart mit
Delphi-Quellcode:
oder Ähnlichem auszulesen, und dann immer diese Variable zu benutzen.
sProgrammRoot := ExtractFilePath(paramstr(0));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 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