Который день бьюсь, почитал много, но понять не могу как использовать CreateProcess с несколькими параметрами.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
DSTN: LongBool;
StartUpInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
Error: integer;
InFName, OFName, params: string;
ComApp: PAnsiChar;
begin
if OpDlg1.Execute then
IFName := ExtractFileName(OpDlg1.FileName);
OFName := ' MyDoc.txt';
params := IFName + OFName;
FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0);
with StartUpInfo do
begin
cb := SizeOf(TStartUpInfo);
dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
wShowWindow := SW_SHOWNORMAL;
end;
DSTN := CreateProcess('Conv.exe ', params, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo);
if DSTN then
with ProcessInfo do
begin
WaitForInputIdle(hProcess, INFINITE);
CloseHandle(hThread);
CloseHandle(hProcess);
end
else
Error := GetLastError;
end;
Проблема в том что мне нужно после Conv.exe должны идти 2 параметра, имя входного файла, которое берется из OpenDialog и имя выходного файла, которое записанно в переменной. Но при такой конструкции ничего не происходит. Если вместо params руками прописать ' 1.txt MyDoc.txt' то так все работает. Как правильно запускать CreateProcess с параметрами?