Schade, dann scheint das ein Problem bei
GetModuleFileName in dem alten Windows zu sein.
Hätte ja sein können, daß es bei dir noch nicht verbaut wurde.
Der erste Wert (0. Parameter) von
GetCommandLine ist nämlich noch schlimmer, da er genau dem Entspricht, wie der Aufruf passierte.
z.B. über die Konsole oder via ShellExecute mit relativem Pfad aufgerufen "meinprogramm" (ohne .exe), dann steht genau das "meinprogramm" darin.
ExpandFileName oder
GetFullPathName
[edit]
Wenn du es benutzt, um z.B. auf eine INI zuzugreifen
ChangeFileExt(ParamStr(0), '.ini')
, dann gibt es ein Problem, wenn es die INI noch nicht gibt und sie erstellt werden soll.
(OK, wobei es eh keine gute Idee ist, die INI nach C:\Windows oder ins Programmeverzeichnis legen zu wollen
)
Außerdem ist der Kurzname der gleichnamigen INI nicht unbedingt identisch mit dem Kurznamen der EXE, selbst wenn die langen Namen übereinstimmen.