Vielleicht hat das Programm ein Problem damit, dass du den aktuellen Ordner für die Instanz nicht setzt (nil-Parameter). Wenn ich ShellExecute aufrufe, mach ich es eigentlich immer gleich:
Delphi-Quellcode:
function ExecuteFile(aFileName, aParameters: string; aDirectory: string = ''; aExecMode: string = 'open'): integer;
var Folder: string;
begin
Folder := aDirectory;
if Folder = '' then
Folder := ExtractFileDir(aFileName);
result := ShellExecute(0, PChar(aExecMode), PChar(aFileName), PChar(aParameters), PChar(Folder), SW_SHOW);
end;
procedure TForm1.Button1Click(Sender: TObject)
var ExecResult : integer;
begin
ExecResult := ExecuteFile(Edit1.Text, '');
if ExecResult < 32 then
// Fehlerbehandlung
end;