Re: Перенаправление ввода-вывода консоли
От: Dutchman Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.05.02 12:40
Оценка: 5 (1)
Здравствуйте Oxy, Вы писали:

Гляди:

BOOL CreateProcess(
  LPCTSTR lpApplicationName,                 // name of executable module
  LPTSTR lpCommandLine,                      // command line string
  LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
  BOOL bInheritHandles,                      // handle inheritance option
  DWORD dwCreationFlags,                     // creation flags
  LPVOID lpEnvironment,                      // new environment block
  LPCTSTR lpCurrentDirectory,                // current directory name
  LPSTARTUPINFO lpStartupInfo,               // startup information
  LPPROCESS_INFORMATION lpProcessInformation // process information
);


Чтоб не показывалось окно — юзай CREATE_NO_WINDOW для dwCreationFlags.

В lpStartupInfo засовываешь хэндлы консоли — я пометил, где

typedef struct _STARTUPINFO { 
    DWORD   cb; 
    LPTSTR  lpReserved; 
    LPTSTR  lpDesktop; 
    LPTSTR  lpTitle; 
    DWORD   dwX; 
    DWORD   dwY; 
    DWORD   dwXSize; 
    DWORD   dwYSize; 
    DWORD   dwXCountChars; 
    DWORD   dwYCountChars; 
    DWORD   dwFillAttribute; 
    DWORD   dwFlags; 
    WORD    wShowWindow; 
    WORD    cbReserved2; 
    LPBYTE  lpReserved2; 
    HANDLE  hStdInput;  // вот куда перенаправляться будет
    HANDLE  hStdOutput; // вот куда перенаправляться будет
    HANDLE  hStdError;  // вот куда перенаправляться будет} STARTUPINFO, *LPSTARTUPINFO;


Oxy>Помогите, пожалуйста, с перенаправлением ввода-вывода консоли. Мне нужно перенаправить стандартный вывод консоли в файл и/или пайп. Если быть точным, то мне надо что бы вывод консоли выводился в мемо. При этом что бы самой консоли не было видно. Перерыл пол инета, перепробовал множество примеров и ничего стоящего не нашел. Большинство примеров просто не работает или работает не так как хотелось бы. Может кто имеет готовый работающий пример или ссылку на оный.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.