Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.16;
Скачать: CL | DM;

Вниз

Левоая консольная прога чарез CreateProcess   Найти похожие ветки 

 
Zheks ©   (2003-12-04 10:24) [0]

Подскажите плз. как запретить программе вывод на консоль?
exeшник я запускаю CreateProcess();

спасибо


 
Polevi ©   (2003-12-04 11:06) [1]

переопределить stdout процесса


 
Polevi ©   (2003-12-04 11:17) [2]

procedure TForm1.Button1Click(Sender: TObject);
var
sa:TSecurityAttributes;
si:TStartupInfo;
pi:TProcessInformation;
stdin,stdout:THandle;
begin
if not CreatePipe(stdin, stdout, @sa, 0) then RaiseLastOSError;
GetStartupInfo(si);
si.cb:=sizeof(TStartupInfo);
si.dwFlags:=STARTF_USESTDHANDLES;
si.hStdInput:=stdin;
si.hStdOutput:=stdout;
si.hStdError:=stdout;
if not CreateProcess(nil,"cmd.exe",nil,nil,true,0,nil,nil,si, pi) then
RaiseLastOSError;
end;


 
Zheks ©   (2003-12-04 12:03) [3]

Спасибочки, сейчас буду пробовать... просто мне + к этому нужно ещё дождаться завершения процесса программы поэтому наворотил и запутался...


 
Zheks ©   (2003-12-04 12:16) [4]

procedure TForm1.Button1Click(Sender: TObject);
var
sa:TSecurityAttributes;
si:TStartupInfo;
pi:TProcessInformation;
stdin,stdout:THandle;
begin
sa.nLength := sizeof(sa);
sa.bInheritHandle := true;
sa.lpSecurityDescriptor := nil;
if not CreatePipe(stdin, stdout, @sa, 1024) then RaiseLastOSError;
GetStartupInfo(si);
si.cb:=sizeof(TStartupInfo);
si.dwFlags:=STARTF_USESTDHANDLES;
si.hStdInput:=stdin;
si.hStdOutput:=stdout;
si.hStdError:=stdout;
if not CreateProcess(nil,"obspar96.exe",nil,nil,true,0,nil,nil,si, pi) then
RaiseLastOSError;
end;

блин, почему файлы, которые получаются после работы программы пустые?, хотя если вручную(из ФМ) запустить, то всё работает


 
Polevi ©   (2003-12-04 12:22) [5]

зачем тебе вообще запрещать вывод на консоль, мне кажется в твоем случае проще просто не показывать окно запусканмого приложения


 
Zheks ©   (2003-12-04 12:39) [6]

Проблема такая: 1) при выводе на косоль раздаются Beep(ы); которые существенно тормозят обработку.
2) Программа производит обработку в 2 этапа:
1. Обрабатывает первую часть данных сохраняет результат
2. Обрабатывает вторую часть данных сохраняет результат поверх старого, поэтому я жду завершения обработки первой части и переношу их.


 
Polevi ©   (2003-12-04 13:12) [7]

в фак есть пример перехвата ввода-вывода cmd.exe
теоретически ты можешь перенаправить вывод своей пронраммы в свой буфер и анализировать его - наверняка прогрмма сообщает в консоль об этапах своей деятельности



Страницы: 1 вся ветка

Текущий архив: 2003.12.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
11-52132
Deimos
2003-04-01 23:39
2003.12.16
помогите начинающему...


1-52274
antoncom
2003-12-05 14:03
2003.12.16
Memo...


1-52154
Aster-X
2003-12-03 17:47
2003.12.16
TMemo и перенос строки


4-52440
soniko
2003-10-08 11:22
2003.12.16
Проблема с RasSetEntryProperties()


3-52074
Goida
2003-11-25 07:01
2003.12.16
Как позиционировать курсор в DBGrid?