Форум: "Основная";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];
ВнизЛевоая консольная прога чарез 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c