Rene,
InstallShield code below will set ROOTSYS and PATH on win9x/NT/200. I am
runnning win98, so you have to check it on NT/2000. If it works for a local
user on NT, I can add "administrator on-line" check and if it is so, install
ROOT for all users on this comp.
There is a problem with ROOTSYS and long/short names in autoexec.bat on
win9x. Paths should be "short" in the .bat file, i.e. autoexec.bat can not
recognize
SET ROOTSYS = C:\Program Files\ROOT
Instead you have to write
SET ROOTSYS= C:\Progra~1\ROOT
and the same in the PATH.
On the other hand ROOT doesn't understand
ROOTSYS= C:\Progra~1\ROOT
Could you check this with Valery? In your current InstallShield distribution
the default path is c:\Program Files\root. I am curious if any win9x user
has managed to run ROOT from this location.
Regards,
Anton
// your global variables
#define WM_WININICHANGE 0x001A
#define HWND_BROADCAST 0xffff
function OnFirstUIAfter()
STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
STRING szROOTSYS, szKey, szEnv;
NUMBER bOpt1, bOpt2;
POINTER pEnv;
begin
if (GetEnvVar ("ROOTSYS", szROOTSYS) < 0) then
if (SYSINFO.WIN9X.bWin9X) then
// MessageBox ("WIN 9x detected", INFORMATION);
BatchFileLoad("");
szROOTSYS = TARGETDIR;
if (BatchAdd("ROOTSYS", szROOTSYS, "PATH", BEFORE) < 0) then
MessageBox ("Setting ROOTSYS failed", INFORMATION);
endif;
LongPathToShortPath(szROOTSYS);
if (BatchAdd ("PATH", szROOTSYS+"\\bin;%PATH%", "PATH", AFTER) < 0)
then
MessageBox ("Setting ROOT PATH failed", INFORMATION);
endif;
BatchFileSave("AUTOEXEC.OLD");
BATCH_INSTALL = TRUE;
endif;
if (SYSINFO.WINNT.bWinNT || SYSINFO.WINNT.bWin2000) then
// MessageBox ("WIN NT/2000 detected", INFORMATION);
szKey="Environment";
RegDBSetDefaultRoot(HKEY_CURRENT_USER);
RegDBSetKeyValueEx(szKey,"ROOTSYS",REGDB_STRING,TARGETDIR,-1);
szEnv = "Environment";
pEnv = &szEnv;
SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, pEnv );
endif;
endif;
Disable(STATUSEX);
ShowObjWizardPages(NEXT);
bOpt1 = FALSE;
bOpt2 = FALSE;
szMsg1 = "RQuant installation successfully finished!" +
"\n\nYour system.rootrc file has been copied to
system.rootrc.old"; // SdLoadString(IFX_SDFINISH_MSG1);
SdFinishEx(szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2);
end;
http://www.smartquant.com
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:36 MET