Hi,
so tut dat ...
Delphi-Quellcode:
procedure Test( const RunProg : string );
var
Pfad : string;
Prog : string;
begin
Prog := RunProg;
Pfad := ExtractFilePath( Prog );
ShellExecute(
0, 'open',
PAnsiChar( Prog ), nil,
PAnsiChar( Pfad ),
SW_SHOWNORMAL );
end;
Warum geht dein Versuch nicht ...
PChar(ExtractFilePath(Application.ExeName))
soll einen Zeiger (Pointer) auf einen Speicherbereich bringen, wo sich ein nullterminierte Zeichenkette befindet.
ExtractFilePath(Application.ExeName)
ist aber nun mal sehr kurzlebig, weil ja nicht gesagt wird, dass das auch gespeichert werden soll.
Also alles zusammentragen und in einer Variablen speichern und dann mit PChar (bzw. die korrekte Deklaration ist ein PAnsiChar) den Zeiger auf die Variable holen und übergeben.
(bitte jetzt mal einen Pointer-Meister an die Front, bevor ich hier Müll erzähle, aber ich stelle mir das genau so vor)
cu
Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)