Содержание материала

 

 

Я не профи в Win API, просто у меня возникла именно такая проблема. Я нашел решение устраивающее меня. И к тому же решил, поделился с вами. Если кому-то требуется что-то другое - дерзайте, я с удовольствием прочту на "Королевстве" что и как у вас получилось. Handle = Хэндл = Рукоятка :)

 Хочу предложить 2 способа:

 1) Простой, с использованием command.com /c имя_консольной_проги > имя_файла_куда_переназначить_StdOut

2) С использованием Win API (2 штуки)

Вы уж сами выберите, что вам подходит больше. Я использую способ № 2.2.

Рассмотрим их более подробно на примерах.

 

Способ №1

  

Code:

var

StartupInfo: TStartupInfo;

ProcessInformation: TProcessInformation;

begin

GetStartupInfo(StartupInfo);

with StartupInfo do

begin

   wShowWindow := SW_HIDE; //не показывать окно

   dwFlags := STARTF_USESHOWWINDOW;

end;

 

// для примера будем запускать [c:\program files\Borland\Delphi5\Bin]grep.exe с ключом '?'

Win32Check(CreateProcess(nil, 'command.com /c  grep.exe ? > MyStdOut.txt',

   nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInformation));

 

// ждем пока наш процесс отработает

WaitForSingleObject(ProcInfo.hProcess, INFINITE);

 

Win32Check(CloseHandle(ProcInfo.hProcess);

end;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить