在窗口创建新的子proccess我使用CreateProcess
功能:如何让子进程使用与parrent相同的环境变量加上它自己的windows?
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。现在,我希望孩子拥有与lpEnvironment
(即父进程和指定进程的合并环境)中指定的parrent plus环境变量相同的环境。你会如何建议这样做?我应该把父母的所有envs合并为新的,并将它们全部传递给CreateProcess
?
是的,你应该。 – harper 2011-04-08 06:18:05