Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запуск ДОС-программы и переопределение консольного ввода/вывода

9.8K
13 апреля 2006 года
c@Dr
15 / / 31.08.2005
Вот код программы:
Код:
STARTUPINFOA        syst;
PROCESS_INFORMATION prc;
OFSTRUCT            of;
GetStartupInfo(&syst);
HANDLE  h1=CreateFile("D:\\testing\\out", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,NULL);

HANDLE  h2 = (HANDLE)OpenFile("D:\\testing\\in", &of, OF_READ);
       
ZeroMemory(&syst,sizeof(STARTUPINFO));
syst.cb=sizeof(STARTUPINFO);       
syst.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
syst.hStdInput = h2;
syst.hStdOutput = h1;

CreateProcess(  "D:\\testing\\n.exe", 0, 0, 0, FALSE, REALTIME_PRIORITY_CLASS, 0, 0, &syst, &prc);

WaitForSingleObject( prc.hProcess, INFINITE );

CloseHandle(h2);
CloseHandle(h1);

Проблема:создает выходной файл 0 байт, т.е. не чего туда непишет, ПОЧЕМУ:???:, немогу разобратьсяX)-. помогите ПЛИЗЗЗЗЗ :(
17K
17 апреля 2006 года
blurred
7 / / 17.04.2006
Параметр CreateProcess bInheritHandles нужно поставить в TRUE, а также задать аттрибуты безопасности для выходного файла:
 
Код:
...
SECURITY_ATTRIBUTES sa;
sa.bInheritHandle=TRUE;
sa.lpSecurityDescriptor=NULL;
sa.nLength=sizeof(SECURITY_ATTRIBUTES);
...
HANDLE  h1=CreateFile("D:\\testing\\out", GENERIC_WRITE, FILE_SHARE_WRITE, &sa, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,NULL);
...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог