[ROOT] InstallShield win9x/NT/2000 ROOTSYS/path code

From: Anton Fokin (anton.fokin@smartquant.com)
Date: Sat Feb 10 2001 - 10:53:16 MET


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 : Fri Jun 08 2001 - 11:51:05 MEST