Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2019, 11:16
Коржик Коржик вне форума
Прохожий
 
Регистрация: 03.04.2019
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Добавить параметры в CreateProcess

Который день бьюсь, почитал много, но понять не могу как использовать 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 с параметрами?
Ответить с цитированием
  #2  
Старый 03.07.2019, 00:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А пробел между значениями в params кто будет стаить???
Код:
params := IFName + ' ' + OFName;
Ответить с цитированием
  #3  
Старый 04.07.2019, 15:27
Коржик Коржик вне форума
Прохожий
 
Регистрация: 03.04.2019
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Сделал так, как вы сказали. Поставил пробел, всё равно ничего не происходит.
Ответить с цитированием
  #4  
Старый 04.07.2019, 16:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А, ну да, в том варианте, который, как ты говоришь, работает, еще пробел перед параметрами, т.е.:
Код:
params := ' ' + IFName + ' ' + OFName;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter