you can set the PATH env var like this. function set_env(szName, svvar_value) NUMBER nResult; STRING szKey, szEnv; POINTER pEnv; begin szKey = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"; RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); nResult = RegDBSetKeyValueEx(szKey, szName, REGDB_STRING, svvar_value, -1); if (nResult < 0) then MessageBox("Failed to Set Environment Variable", WARNING); else MessageBox("Successfully Set Environment Variable", INFORMATION); // Flush the NT registry to all applications. szEnv = "Environment"; pEnv = &szEnv; SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, pEnv ); endif; // RebootDialog("", "", SYS_BOOTMACHINE);end;
在调用DLL
function set_env(szName, svvar_value) NUMBER nResult;
STRING szKey, szEnv;
POINTER pEnv;
begin szKey = "SYSTEM\\CurrentControlSet\\Control\\Session
Manager\\Environment";
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
nResult = RegDBSetKeyValueEx(szKey, szName, REGDB_STRING, svvar_value,
-1);
if (nResult < 0) then
MessageBox("Failed to Set Environment Variable", WARNING);
else
MessageBox("Successfully Set Environment Variable", INFORMATION); // Flush the NT registry to all applications.
szEnv = "Environment";
pEnv = &szEnv;
SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, pEnv );
endif;
// RebootDialog("", "", SYS_BOOTMACHINE);end;