запуск Dos-программки
Мне нужно запустить Dos-файл и я создаю процесс:
STARTUPINFO si;
si.cb=sizeof(si);
si.lpReserved=NULL;
si.lpDesktop=NULL;
si.lpTitle=NULL,
si.dwFlags=STARTF_FORCEONFEEDBACK;
si.cbReserved2=0;
si.lpReserved2=NULL;
PROCESS_INFORMATION pi;
CreateProcess("DOSprog.exe",NULL,NULL,NULL,false,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
WaitForSingleObject(pi.hProcess, INFINITE); // ждем окончания процесса
Все работает. Но, если например доспроге не хватает какого-нибудь файла - она сразу закрывается. Я долго тупил почему прога не запускается. Пробовал и ShellExecute, и так и сяк. Короче не там копал :) Запустил cmd (и че это я сразу не допер), через нее запустил прогу, она отработала, закрылась и в консоли я увидел надпись, что не хватает файла. Тут до меня дошло. Я изменил параметр IpCurrentDirectory у фун-ции CreateProcess и все заработало.
Мой вопрос вот в чем... Можно ли сделать так, чтобы если досовская программка не запускается, она свой текст ошибки передавала Win-проге? а там его по нормальному обработать и вывести соответствующее сообщение.
Любая программа возвращает код завершения, его анализировать проще, чем надпись
Цитата:
Originally posted by r000n_m
Любая программа возвращает код завершения, его анализировать проще, чем надпись
Любая программа возвращает код завершения, его анализировать проще, чем надпись
т.е. если код ненулевой, тогда скорей всего какая-то ошибка?
Цитата:
Originally posted by novichok
т.е. если код ненулевой, тогда скорей всего какая-то ошибка?
т.е. если код ненулевой, тогда скорей всего какая-то ошибка?
ты угадал :)