Was kommt dabei heraus, wenn Du hieraus
'c:\plink.exe -N -R 1234:localhost:1234 user@server.com -P 22'
ExtractFilePath
machst?
Du übergibts der Funktion keinen gültigen Dateinamen, wie soll sie da ein vernünftiges Ergebnis liefern. Sie muss an den Doppelpunkten scheitern.
Ändere Deine Funktion bitte ab, ungefähr sowas:
Delphi-Quellcode:
Function ExecuteAndWait(sExecutableFile : String; sParameter : String; wWindowState : Word = SW_SHOWNORMAL) : Boolean;
var
siInfo : TStartUpInfo;
piInfo : TProcessInformation;
begin
FillChar(siInfo, SizeOf(siInfo), #0);
with siInfo do begin
cb := SizeOf(siInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := wWindowState;
end;
Result := CreateProcess(NIL, pChar(sExecutableFile + ' ' + sParameter), NIL, NIL, FALSE, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, NIL, pchar(ExtractFilePath(sExecutableFile)),siInfo, piInfo);
end;
Aufruf ungefähr so:
Delphi-Quellcode:
if ExecuteAndWait('
c:\plink.exe', '
-N -R 1234:localhost:1234 user@server.com -P 22',SW_SHOWNORMAL)
then begin
// irgendwas;
end else begin
// irgendwas anderes;
end;