Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как запустить другой процесс?


Автор: ТарасАтавин 2.9.2013, 11:08
И как ему передать параметр командной строки?

Автор: SenkraD 2.9.2013, 11:14
вот подробный http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

Автор: ТарасАтавин 2.9.2013, 12:32
Эйси. А что такое атрибуты процесса? И как их задавать?

Автор: ТарасАтавин 2.9.2013, 12:49
Цитата
bInheritHandles. Флаг наследования от процесса производящего запуск. Здесь наследуются дескрипторы. Унаследованные дескрипторы имеют те же значения и права доступа, что и оригиналы.
 Что это такое, зачем нужно и какое значение сюда ставить?

Автор: SenkraD 2.9.2013, 12:52
Я думаю, что в вашем случае хватит текущих полномочий, а значит можете передавать NULL как это сделано в http://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx, ссылка на который есть в ссылке, что я давал в качестве мануала.

Кстати, если есть более старые функции: http://msdn.microsoft.com/en-us/library/windows/desktop/ms687393(v=vs.85).aspx и http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx, они проще в использовании, примеры их использование есть в тех ссылках.

Автор: ТарасАтавин 3.9.2013, 05:36
А можно перенаправить консольный вывод запускаемого процесса? Запустить требуется консольное приложение из оконного. Можно куда нибудь захватить его вывод, чтоб по завершении консольного приложения повторить его в окне?

Автор: bems 3.9.2013, 06:15
если bInheritHandles == TRUE то все хендлы принадлежащие родительскому процессу и для которых разрешено наследование при создании хендла наследуются дочерним процессом.

Чтобы перенаправить консольный ввод и вывод нужно в структуре STARTUPINFO указать хендлы hStdInput, hStdOutput и hStdError, и добавить в dwFlags флажок STARTF_USESTDHANDLES. Эти хендлы должны быть наследуемыми

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)