Re: Запуск ДОС-программы и переопределение консольного ввода
От: indlG0  
Дата: 13.04.06 13:26
Оценка:
G>Вот код программы:

G>
G>STARTUPINFOA        syst;
G>PROCESS_INFORMATION prc;
G>OFSTRUCT        of;

G>GetStartupInfo(&syst);

G>HANDLE  h1 = CreateFile("D:\\testing\\out",
G>            GENERIC_WRITE,
G>            FILE_SHARE_WRITE,
G>            NULL,
G>            CREATE_ALWAYS,
G>            FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,
G>            NULL);

G>HANDLE  h2 = (HANDLE)OpenFile("D:\\testing\\in",&of,OF_READ);
        
G>ZeroMemory(&syst,sizeof(STARTUPINFO));    
G>syst.cb         = sizeof(STARTUPINFO);            
G>syst.dwFlags    = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; 
G>syst.hStdInput  = h2;
G>syst.hStdOutput = h1;
        
G>CreateProcess( "D:\\testing\\n.exe", 0, 0, 0, FALSE, REALTIME_PRIORITY_CLASS, 0, 0, &syst, &prc);

G>WaitForSingleObject( prc.hProcess, INFINITE );

G>CloseHandle(h2);
G>CloseHandle(h1);
G>

Этот код работает только когда создаем консолевское приложение, а вот когда обычное виндовское он не хотит писать в файл и скорее все не читает из файла. Мож там дело в HANDLE-х для ВИн32 и дляконсольного они разные или что нибуть в етом роде. Подскажите как же в виндовской проге етот код зароботал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.