В окнах для создания нового дочернего процесса я использую функцию CreateProcess
:
BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine,
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
Здесь мы видим, что CreateProcess
может получить параметр lpEnvironment
, чтобы указать переменные среды нового процесса иесли он равен NULL, у ребенка будет то же окружение, что и у parrent.Теперь я хочу, чтобы у дочернего элемента было то же окружение, что и у parrent плюс переменные окружения, указанные в lpEnvironment
(то есть объединенное окружение родительского процесса и указанных).Как бы вы предложили это сделать?Должен ли я взять все окружения родителей, объединить их с новыми и передать их на CreateProcess
?