home *** CD-ROM | disk | FTP | other *** search
/ Virtual K'Nex / KNEX.iso / setup.rul < prev    next >
Text File  |  1998-03-13  |  10KB  |  291 lines

  1. /*----------------------------------------------------------------------------*\
  2.  *
  3.  *  IIIIIII PPPPPP  EEEEEE
  4.  *    II    PP  PP  EE         Imagination Pilots Entertainment (R)
  5.  *    II    PPPPPP  EEEEEE  (c) 1995, Imagination Pilots Entertainment
  6.  *    II    PP      EE                 All Rights Reserved.
  7.  *  IIIIIII PP      EEEEEE      
  8.  *
  9.  *
  10.  *  This source code is intended as a supplement to the K'nex
  11.  *  documentation, and is provided AS IS.
  12.  *
  13.  *
  14.  *    File Name:  SETUP.RUL
  15.  *
  16.  *  Description:  Main script file for the cross-platform K'nex
  17.  *                installation.
  18.  *
  19.  *
  20.  *
  21.  *       Author:Phil Davis            Date:  January 21, 1995
  22.  *
  23.  *     Comments:
  24.  *
  25.  *
  26.  *
  27. \*----------------------------------------------------------------------------*/
  28.  
  29. declare
  30.     //#include "c:\\programf\\stirling\\ishield\\dialogs\\include\\sddialog.h"
  31.     #include "..\\..\\..\\dialogs\\include\\sddialog.h"
  32.     #include "instw32s.h"
  33.     #include "instwing.h"
  34.     #include "sys_test.h"
  35.  
  36.     #include "DECLARE.RUL" 
  37.     #include "win31.h"
  38.     #include "win95su.h"
  39.  
  40.     string szTemp, svRetVer, szProgramFolder, szItemName, szCommandLine, szWorkingDir;
  41.     string szIconPath, szShortCutKey, szMainDirectory, svFileName;
  42.     number nResult, nIcon, nFlag;
  43.     BOOL bReadme, bApp, bRESTART_NEEDED;
  44.  
  45. program
  46.     start:
  47.  
  48.     Enable(BITMAP256COLORS);
  49.  
  50.     bIS_32BIT_OS = FALSE;
  51.     bIS_16BIT_OS = FALSE;
  52.     bSuccessful = TRUE;
  53.  
  54.     //----szWin32InstallCompleted     = TRUE;
  55.     //----szWingInstallCompleted      = TRUE;
  56.  
  57.     bRESTART_NEEDED            = FALSE;
  58.  
  59.     // Call SdProductName to make the product name (FreeCell) available to the
  60.     // SdWelcome dialog box, and then welcome the user to the installation.
  61.     //SetTitle(STR_DEF_INSTALL + STR_DEF_TITLE, TITLE_FONTSIZE_USE, WHITE);
  62.     SdProductName( STR_DEF_TITLE );
  63.  
  64. //------------------------------------------------------------------------------
  65. //    DISPLAY MAIN INSTALL GRAPHIC. INIT VARS, AND DETERMINE WHAT OS IS RUNNING 
  66. //------------------------------------------------------------------------------
  67.  
  68.     szBitmapFile = SUPPORTDIR ^ STR_BMP_WELCOME1;
  69.     if(PlaceBitmap (  szBitmapFile, 100, CENTERED, CENTERED, CENTERED ) < 0) then
  70.         MessageBox("PlaceBitmap Failed", WARNING);
  71.         exit;
  72.     endif;
  73.  
  74. //-----------------------------------------------------------------------------
  75. // For Win31 install. Check if this is before or after Windows Restart
  76. //-----------------------------------------------------------------------------
  77.  
  78.     if _AfterRestart() then        //---- Display 'Welcome back' dialog and skip to part 2 of setup.
  79.         szText = "Welcome to part 2 of the setup";
  80.         MessageBox(szText, INFORMATION);
  81.     else                //----Display 'Welcome' dialog.
  82.         Disable(BACKBUTTON);
  83.             SdWelcome( "", "" );
  84.         Enable(BACKBUTTON);
  85.     endif;
  86.  
  87. //-----------------------------------------------------------------------------
  88. //    WHAT VERSION OF WINDOWS IS CURRENTLY RUNNING? 
  89. //    Set the OS flag to either bIS_16BIT_OS or bIS_32BIT_OS 
  90. //-----------------------------------------------------------------------------
  91.  
  92.     if(GetSystemInfo(OS,nvResult,svResult) < 0) then
  93.         MessageBox("Couldn't get Operating System info",WARNING);
  94.     
  95.       else switch(nvResult)
  96.            case IS_WINDOWS:
  97.             bIS_16BIT_OS = TRUE;
  98.             szEXEName = STR_16BIT_EXE;
  99.  
  100.         case IS_WIN32S:
  101.             bIS_16BIT_OS = TRUE;
  102.             szEXEName = STR_16BIT_EXE;
  103.  
  104.         case IS_WINDOWS95:
  105.             bIS_32BIT_OS = TRUE;
  106.             szEXEName = STR_32BIT_EXE;
  107.  
  108.         case IS_WINDOWSNT:
  109.             bIS_32BIT_OS = TRUE;
  110.             szEXEName = STR_32BIT_EXE;
  111.  
  112.        endswitch;    
  113.     endif;
  114.  
  115. //-----------------------------------------------------------------------------
  116. // If OS is Windows NT or Windows 95, do not install Win32s.
  117. // If the system is Win3.1 or Win32s then
  118. // Call _InstallWin32s to install or upgrade Win32s on the target system.
  119. // Specify the Win32s version you are installing (1.30 here).
  120. //-----------------------------------------------------------------------------
  121.  
  122.         if (( nvResult != IS_WINDOWSNT ) && ( nvResult != IS_WINDOWS95 )) then
  123.         
  124.         _Win31_Install(  );
  125.     else
  126.  
  127.         _Win95_Install(  );
  128.         
  129.     endif;
  130.  
  131.  
  132.  
  133.  
  134.  
  135. //-----------------------------------------------------------------------------
  136. // If any if the Win 31 system components were added set szInstallCompleted to FALSE.
  137. //-----------------------------------------------------------------------------
  138.  
  139.     if (bRESTART_NEEDED) then
  140.         szInstallCompleted = FALSE;
  141.     else
  142.         szInstallCompleted = TRUE;
  143.     endif;
  144.  
  145. //-----------------------------------------------------------------------------
  146. // Evaluate if the system needs to be rebooted for additions to take effect.
  147. // Call _RestartAfterInstall() if you wish the user should restart windows
  148. // to activate Win32s.
  149. //-----------------------------------------------------------------------------
  150. jumpit: 
  151.     _RestartAfterInstall();
  152.  
  153. //-----------------------------------------------------------------------------
  154. // ---- CHECK THE SYSTEM AND MODIFY CONFIG.INI.
  155. //-----------------------------------------------------------------------------
  156.  
  157.     SetDialogTitle(DLG_ASK_YESNO, "Install Query");
  158.     if( AskYesNo( STR_RUN_TESTS, NO) = YES) then
  159.         _GetSystemInfo();
  160.     endif;
  161.     
  162.  
  163. //-----------------------------------------------------------------------------
  164. // Finish the installation.
  165. // Disable the progress indicator and the information gauges.
  166. //
  167. // Add the K'nex program item to the IPE MM program group.  The group
  168. // will be created if it does not exist
  169. //-----------------------------------------------------------------------------
  170.  
  171.  
  172. //-----------------------------------------------------------------------------
  173. // Add the K'nex README Icon to IPE MM group.
  174. //-----------------------------------------------------------------------------
  175.  
  176.     if ( bIS_16BIT_OS ) then
  177.         szCmdLine = "WRITE.EXE " + szAppPath ^ STR_README_WRI;
  178.         szProgramFolder = STR_DEF_GROUP_16;
  179.  
  180.     else
  181.         szCmdLine = szAppPath ^ STR_README_WRI;
  182.         LongPathToQuote(szCmdLine, TRUE);
  183.         szProgramFolder = STR_DEF_GROUP_32;
  184.         //szCmdLine = "WORDPAD.EXE" + szCmdLine;
  185.     endif;
  186.  
  187.  
  188.     szWorkingDir = szAppPath;
  189.     szItemName  = "K'NEX README";
  190.  
  191.     CreateProgramFolder(szProgramFolder);
  192.     
  193.     szIconPath = "";
  194.     nIcon = 0;
  195.     szShortCutKey = "";
  196.     nFlag = REPLACE;
  197.  
  198.         if (AddFolderIcon( szProgramFolder, szItemName, szCmdLine, szWorkingDir, "", 0, "", REPLACE ) < 0) then
  199.         MessageBox("Add program Icon failed", WARNING);
  200.     endif;
  201.  
  202. //-----------------------------------------------------------------------------
  203. // Add the K'nex Icon to IPE MM group.
  204. //-----------------------------------------------------------------------------
  205.  
  206.     if ( bIS_16BIT_OS ) then
  207.         szCmdLine = szAppPath ^ STR_16BIT_EXE;
  208.  
  209.     else
  210.         szCmdLine = szAppPath ^ STR_32BIT_EXE;
  211.         LongPathToQuote(szCmdLine, TRUE);
  212.     endif;
  213.  
  214.     szItemName = "K'nex Construction Set K-Force Rescue";
  215.  
  216.         if (AddFolderIcon( szProgramFolder, szItemName, szCmdLine, szWorkingDir, "", 0, "", REPLACE )) < 0 then
  217.         MessageBox("Add Readme Icon failed", WARNING);
  218.     endif;
  219.  
  220. //-----------------------------------------------------------------------------
  221. // If Win31 install add Uninstall icon.
  222. //-----------------------------------------------------------------------------
  223.  
  224.     if(bIS_16BIT_OS) then
  225.         szCmdLine = WINDIR ^ "UNINST16.EXE";
  226.         szCmdLine = szCmdLine + " -f" + svUninstallLogFile;
  227.         szIconPath = szAppPath ^ "uninstal.ico";
  228.     else
  229.         LongPathToQuote(svUninstallLogFile, TRUE);
  230.         szCmdLine = WINDIR ^ "UNINST.EXE -f" + svUninstallLogFile;
  231.         szIconPath = szAppPath ^ "uninstal.ico";
  232.         LongPathToQuote(szIconPath, TRUE);
  233.     endif;
  234.         szItemName = STR_DEF_UNINSTALL;
  235. //        if (AddFolderIcon( szProgramFolder, szItemName, szCmdLine, WINDIR, szIconPath, 0, "", REPLACE ) < 0) then
  236.         if (AddFolderIcon( szProgramFolder, szItemName, szCmdLine, WINDIR, szIconPath, 0, "", REPLACE )) < 0 then
  237.             MessageBox("Add UNINSTALL Icon failed", WARNING);
  238.         endif;
  239.  
  240.         //---- Pause and display the group to the user.
  241.  
  242.         //ShowGroup( STR_DEF_GROUP, SW_SHOW );
  243.         Delay(1);
  244.  
  245. //-----------------------------------------------------------------------------
  246. // Display the SdFinish dialog box, offering the user the chance to run K'nex.
  247. //-----------------------------------------------------------------------------
  248.  
  249.     if (GetSystemInfo(COLORS, nvResult, svResult) < 0) then
  250.         MessageBox("Couldn't get COLOR info", WARNING);
  251.     endif;
  252.  
  253.     if (nvResult < 256) then
  254.         MessageBox("Your display must be set to at least 256 colors or higher\nto run K'nex Construction Set?", WARNING);
  255.     endif;
  256.     
  257.     if(bSuccessful) then
  258.             SdFinish(STR_DEF_FTITLE, STR_DEF_FMSG1, STR_DEF_FMSG2, STR_DEF_OPT1, STR_DEF_OPT2, bReadme, bApp );
  259.             if ( bReadme ) then
  260.             ChangeDirectory(szAppPath);
  261.                     LaunchApp( "WRITE.EXE", "README.WRI" );
  262.             Delay(2);
  263.             endif;
  264.  
  265.             if ( bApp ) then
  266.             ChangeDirectory(szAppPath);
  267.                     LaunchApp( szEXEName, "" );
  268.             endif;
  269.     else
  270.         MessageBox(STR_MSG_039, WARNING);
  271.  
  272.         // Set the root
  273.         RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
  274.  
  275.         if( RegDBDeleteKey ( WIN95_APPPATH ^ PRODUCT_KEY) < 0) then
  276.             MessageBox(STR_MSG_040, WARNING);
  277.         endif;
  278.     endif;
  279. exit;
  280.  
  281.  
  282. //#include "c:\\programf\\stirling\\ishield\\dialogs\\include\\sddialog.rul"
  283. #include "..\\..\\..\\dialogs\\include\\sddialog.rul"
  284. #include "instw32s.rul"
  285. #include "instwing.rul"
  286. #include "sys_test.rul"
  287. #include "win31.rul"
  288. #include "win95su.rul"
  289.  
  290. 
  291.