Mir ist nicht ganz klar, was Du möchtest.
Soll das Arbeitsverzeichnis des Programmes das Laufwerk des USB-Sticks sein?
Dann eventuell im Programm (FormCreate oder so) dashier ausprobieren:
Delphi-Quellcode:
...
ChDir(ExtractFilePath(Application.ExeName));
... oder
ChDir(ExtractFileDrive(Application.ExeName));
...
Im ersten Fall ist dann das aktuelle Verzeichnis des Programmes das Verzeichnis, in welchem sich die Exe befindet.
Im zweiten Fall ist das aktuelle Verzeichnis das Root-Laufwerk des USB-Sticks, auf dem sich die Exe befindet.
Danke für den Tip, mit Nr. 2 funktioniert es
Beim ShellExecute muss das Arbeitsverzeichnis durch "nil" ersetzt werden:
ShellExecute(handle, 'open', PChar(USBDrive.Drive+':\'+'usb.exe'), nil, nil, SW_NORMAL);
OnCreate der zu startenden Anwendung:
ChDir(ExtractFileDrive(Application.ExeName));
Super !!
kuba