PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : exe-path rauskriegen


Schaf
24.05.2002, 15:54
also folgendes prob:
mein prog hate ne ini-file. diese sucht es natürlich immer im workdir. wenn ich über den exploder aka. explorer eine datei öffne, die mit dem prog verknüpft ist, wird dummerweise immer der path von dieser datei als workdir genommen ... und logischerweise befindet sich dort NICHT die ini-file ... also was tun? das dingen soll ohne registry arbeiten ... weil inner schule hab ich keine schreibrechte @registry :mauer: aber auch sonst finde ich die registry scheisse :D


xOOn
24.05.2002, 16:00
Application.ExeName liefert dir die exedatei mit verzeichniss ExtractFilePath extrahiert das verz. aus einer datei

oder du machst es ueber
ParamStr (0) das liefert dir auch den exenamen mit verzeichniss


ich bevorzuge die erste version

Schaf
24.05.2002, 17:39
thx, das erste hilft mir sehr weiter! aber das zweite ist ja grade das prob ;) das ist nämlich das arbeitsverzeichnis ... nicht immer das exe-verzeichnis ...

Felix Kaiser
24.05.2002, 18:10
Das Problem kenne ich, dank verbesserter Suchmechanismen seit spätestens Windows2000 ists nicht so wichtig. Aber als ich den Self-Patch-Mechanismus des System Control Servers meines Backup Clients (Win95) machen wollte, hat er der Re-Patcher nicht gefunden, ein kleines Programm was im selben Verzeichnis liegt wie der Server und ich im ShellExecute nur relative Pfadangaben benutzt hab. Hab dann einfach den Befehl davor gesetzt:
ChDir(ExtractFilePath(ParamStr(0)));
und bin seit dem glücklich :)

Schaf
24.05.2002, 20:51
glaub net, dass das wirklich sooo einfach ist ... nimm lieber auch application.exename ... weil wenn du dein prog mit nem link startest, in dem nicht der programmpath als workdir angegeben ist ... :confused:

Felix Kaiser
24.05.2002, 20:59
Öhm, ParamStr(0) gibt seit Pascalurgedenken schon immer den Pfad des Programmes aus. Zu dem wird Application.ExeName mit NICHTS anderes als ParamStr(0) belegt... Ist also immer identisch :p