在使用CreateProcess函數創建新進程時,可以通過傳入lpEnvironment參數來指定新進程的環境變量。lpEnvironment參數是一個指向空終止多字符串數組的指針,每個字符串都采用“變量名=值”的形式表示一個環墋變量。
例如,可以創建一個包含兩個環境變量的新進程:
TCHAR szCmdline[] = TEXT("child.exe");
TCHAR szEnv[] = TEXT("VAR1=Value1\0VAR2=Value2\0");
LPVOID lpvEnv = (LPVOID)szEnv;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
CreateProcess(NULL, szCmdline, NULL, NULL, FALSE, 0, lpvEnv, NULL, &si, &pi);
在上面的代碼中,通過將包含兩個環境變量的字符串數組傳遞給lpvEnv參數,可以將這些環境變量傳遞給新進程。新進程將繼承這些環境變量并在其運行過程中使用它們。
注意:在創建新進程時,需要確保lpEnvironment參數指向的字符串數組以兩個空終止字符終止。