Форум: "Потрепаться";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
ВнизБонально, но надо - как вывести из консоли cerr! Найти похожие ветки
← →
HolACost! (2003-08-20 10:33) [0]Если брать просто ст вывода то всё куль тиап так
print_my_loga.exe>log.txt,
но если прога выводить в cerr, то вывод в консоли!
← →
Некрофил - затейник__ (2003-08-20 10:44) [1]Вообще то програмно можно. Инфа где то была на этом сайте.
← →
han_malign (2003-08-20 10:57) [2]А cerr подменить не судьба? Это обычный ostream, что хочешь, то ему и назначай...
← →
Vlad Oshin (2003-08-20 10:58) [3]Мне помогло
Вот кусок реально работающей демонстрационной программы. Консольное приложение надо запускать с унаследованными описателями ввода-вывода (как - см. ниже). var SI: TStartupInfo; PI: TProcessInformation; procedure TForm1.SendCommand(Cmd: string); var S: ShortString; InpHnd: THandle; InpRec: TInputRecord; i: integer; N: DWord; begin if Cmd <> "" then begin S := StrPas(PChar(Cmd)); if ((S[1] > #31) or (Length(S) > 1)) and (Pos(#13, S) = 0) then S := S + #13; InpHnd := GetStdHandle(STD_INPUT_HANDLE); InpRec.EventType := KEY_EVENT; InpRec.Event.KeyEvent.bKeyDown := True; InpRec.Event.KeyEvent.wRepeatCount := 1; InpRec.Event.KeyEvent.wVirtualKeyCode := 0; for i := 1 to Length(S) do with InpRec.Event.KeyEvent do begin wVirtualScanCode := VkKeyScan(S[i]); UnicodeChar := WideChar(S[i]); dwControlKeyState := Hi(VkKeyScan(S[i])); AsciiChar := S[i]; WriteConsoleInput(InpHnd, InpRec, 1, N)) end end end; procedure TForm1.FormCreate(Sender: TObject); begin ZeroMemory(@SI, SizeOf(SI)); with SI do begin hStdInput := GetStdHandle(STD_INPUT_HANDLE); hStdOutput := GetStdHandle(STD_OUTPUT_HANDLE); hStdError := GetStdHandle(STD_ERROR_HANDLE); dwFlags := STARTF_USESTDHANDLES or STARTF_FORCEONFEEDBACK; cb := SizeOf(SI) end; AllocConsole; CreateProcess(Nil, "...", Nil, Nil, True, 0, Nil, Nil, SI, PI) end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CloseHandle(PI.hThread); CloseHandle(PI.hProcess); FreeConsole end; Юрий Зотов
Ketmar © 13.08.03 15:26
>Vlad © 13.08.03 14:45
только для софта, который выводин на экран при помощи int 21h. все остальные весело пролетают мимо.
← →
nikkie (2003-08-20 11:00) [4]my.exe >stdout.txt 2> stderr.txt
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.016 c