I had the same problem with an earlier version of InstallShield. Here's the way I solved it (quick and dirty code).
#define HWND_BROADCAST 0xffff
#define WM_SETTINGCHANGE 0x001A
function UpdateEnvironmentVariable(szKey, szValue)
NUMBER nResult;
STRING szEnv;
POINTER pEnv;
begin
nResult = RegDBSetKeyValueEx(szKey, "PATH", REGDB_STRING, szValue, -1);
szEnv = "Environment";
pEnv = &szEnv;
SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, pEnv );
end;
The key is to use SendMessage.
Hope it helps.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…