%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/down/eBOOKS/Electric_Circuits_Encyclopedia/
Upload File :
Create Path :
Current File : //data/down/eBOOKS/Electric_Circuits_Encyclopedia/Setup.rul

//Back N Saver Setup Script

declare



   // Constant declarations.
   #include "sddialog.h"
   #define SPACE_REQUIRED          13000000          // Disk space in bytes.
   #define APP_NAME                "Encyclopedia of Circuits Suite"
   #define APPBASE_PATH            "Circuits"
   #define COMPANY_NAME            "McGraw-Hill"
   #define PRODUCT_NAME            "Encyclopedia of Circuits Suite"
   #define PRODUCT_VERSION         "1.0"
   #define DEINSTALL_KEY           "CircuitKey"
   #define UNINSTALL_NAME          "Encyclopedia of Circuits Suite"
   #define PRODUCT_KEY             "Circuit"
   #define PROGRAM_FOLDER_NAME     "Encyclopedia of Circuits Suite"


   // Global variable declarations.
   STRING  svFolder, svDir, szMsg, szFileSet, szTitle, svUninstLogFile;
   STRING  svTarget, szProgram, szParam, szTemp, szAppPath, szRegRoot;
   STRING  szComponents,szMsg1,szMsg2,szHold;
   STRING  szOpt1,szOpt2,szOpt3,szOpt4;
   BOOL    bSpaceOk, bWinNT, bWin32s, bIsShellExplorer;
   NUMBER  nResult,nHold,nSize;

   // Function declarations.
   prototype SetupScreen ();
   prototype CheckRequirements ();

program

start:

   Disable( BACKGROUND );
   SdProductName(APP_NAME);

   // Set installation info., which is required for registry entries.
   InstallationInfo( COMPANY_NAME, PRODUCT_NAME, PRODUCT_VERSION, PRODUCT_KEY );

   // Set up the installation screen.
   SetupScreen();
   Enable( DIALOGCACHE );

   // Create a Welcome dialog.
   WelcomeDlg:
      Disable( BACKBUTTON );
      Welcome( "", 0 );
      Enable( BACKBUTTON );

      // Test target system for proper configuration.
      CheckRequirements();


   // Ask user for a destination location for the installation.--
   GetTargetDirectory:

   // InstallShield sets PROGRAMFILES such that it points to 'Program Files' directory location.

         if ( PROGRAMFILES = "") then
              svTarget = TARGETDISK ^ "\\Program Files\\" ^ APPBASE_PATH;
         else
              svTarget = PROGRAMFILES ^ APPBASE_PATH;
         endif;

      if (AskDestPath( "", szMsg, svTarget, 0 ) = BACK) then
         goto WelcomeDlg;
      endif;

      // Perform space check of target drive.
      bSpaceOk = TRUE;
      if (GetDiskSpace( svTarget ) < SPACE_REQUIRED) then
         szMsg = "There is not enough space available on the disk\n" +
                 "'" + svTarget + "' \n" +
                 "Please free up some space or change the target location\n" +
                 "to a different disk";
         MessageBox( szMsg, WARNING );
         bSpaceOk = FALSE;
      endif;

      // If not enough space, ask user to try again.
      if (bSpaceOk = FALSE) then
         goto GetTargetDirectory;
      endif;

   // Set the App Paths key for the main program.
   szAppPath = svTarget;
   RegDBSetItem( REGDB_APPPATH, szAppPath );
   szProgram = svTarget ^ "BackNsaveman.exe";
   RegDBSetItem( REGDB_APPPATH_DEFAULT, szProgram );



   SetupFilesToTransfer:
      szFileSet = "General";
      Enable( STATUSDLG );


      // Define the file set.
      FileSetBeginDefine( szFileSet );

      SetStatusWindow( -1, "Copying Encyclopedia files..." );
      StatusUpdate( ON, 40 );
      TARGETDIR = svTarget ^ "Encyclo";
      CompressGet( "DATA.Z", "encyc\\*.*", COMP_NORMAL | INCLUDE_SUBDIR);
      SetStatusWindow( -1, "Copying SuperCad files..." );
      StatusUpdate( ON, 60 );
      TARGETDIR = svTarget ^ "SuperCAD";
      CompressGet( "DATA.Z", "SuperCAD\\*.*", COMP_NORMAL | INCLUDE_SUBDIR);
      SetStatusWindow( -1, "Copying SuperPCB files..." );
      StatusUpdate( ON, 95 );
      TARGETDIR = svTarget ^ "SuperPCB";
      CompressGet( "DATA.Z", "SuperPCB\\*.*", COMP_NORMAL | INCLUDE_SUBDIR);
      TARGETDIR = WINSYSDIR;
      CompressGet( "DATA.Z", "system\\*.*", COMP_NORMAL);


      FileSetEndDefine( szFileSet );



   TransferFiles:
      // Prepare InstallShield3 to record deinstallation information.
      DeinstallStart( svTarget, svUninstLogFile, DEINSTALL_KEY, 0 );
      RegDBSetItem( REGDB_UNINSTALL_NAME, UNINSTALL_NAME );

      // Set up progress indicator and information gauge.
      Disable( DIALOGCACHE );


      // Perform the file set.
      nResult = FileSetPerformEz( szFileSet, 0 );

      switch (nResult)
         case FS_DONE: // Successful completion.

         case FS_CREATEDIR: // Create directory error.
            MessageBox( "Unable to create a directory under " + TARGETDIR + "."+
                         "Please check write access to this directory.", SEVERE );
            abort;

         default: // Group all other errors under default label.
             NumToStr( szTemp, nResult );
             MessageBox( "General file transfer error." +
                         "Please check your target location and try again." +
                         "\n\n Error Number:" + szTemp +
                          "\n Related File: " + ERRORFILENAME,
                          SEVERE );
             abort;
      endswitch;

      Delay( 1 );


   // Create program folders and icons.
   InstallProgramItems:
      SetStatusWindow( 99, "Creating Program Folder and Icons...." );

      if ( !bIsShellExplorer ) then
         AppCommand( PROGMAN, CMD_RESTORE );
         LongPathToShortPath( svTarget );
      endif;
 
      svFolder = PROGRAM_FOLDER_NAME;
      CreateProgramFolder( svFolder );
      ShowProgramFolder( svFolder, SW_SHOW );
      Delay(1);


      szProgram = svTarget ^ "supercad\\super.EXE";
      if (!bIsShellExplorer) then
	 LongPathToShortPath( szProgram );
      else
	 LongPathToQuote( szProgram, TRUE );
      endif;
      AddFolderIcon( svFolder, "SuperCad", szProgram, svTarget ^ "superCAD",
                     "", 0, "", REPLACE );

      szProgram = svTarget ^ "superpcb\\spcb.EXE";
      if (!bIsShellExplorer) then
	 LongPathToShortPath( szProgram );
      else
	 LongPathToQuote( szProgram, TRUE );
      endif;
      AddFolderIcon( svFolder, "SuperPCB", szProgram, svTarget ^ "superPCB",
                     "", 0, "", REPLACE );

      szProgram = svTarget ^ "encyclo\\encyc.EXE";
      if (!bIsShellExplorer) then
	 LongPathToShortPath( szProgram );
      else
	 LongPathToQuote( szProgram, TRUE );
      endif;
      AddFolderIcon( svFolder, "Encyclopia of Circuits", szProgram, svTarget ^ "encyclo",
                     "", 0, "", REPLACE );

      szProgram = "winhelp";
      szParam = svTarget ^ "encylco\\endoc.hlp";
      LongPathToShortPath( szParam);
      if (!bIsShellExplorer) then
	 LongPathToShortPath( szProgram );
      else
	 LongPathToQuote( szProgram, TRUE );
      endif;
      AddFolderIcon( svFolder, "Using the Encyclopedia", szProgram + " " + szParam, "",
                     "", 0, "", REPLACE );

      szProgram = "winhelp";
      szParam = svTarget ^ "supercad\\sim.hlp";
      LongPathToShortPath( szParam);
      if (!bIsShellExplorer) then
	 LongPathToShortPath( szProgram );
      else
	 LongPathToQuote( szProgram, TRUE );
      endif;
      AddFolderIcon( svFolder, "SuperSim Manual", szProgram + " " + szParam, "",
                     "", 0, "", REPLACE );

      szProgram = "winhelp";
      szParam = svTarget ^ "supercad\\spice.hlp";
      LongPathToShortPath( szParam);
      if (!bIsShellExplorer) then
	 LongPathToShortPath( szProgram );
      else
	 LongPathToQuote( szProgram, TRUE );
      endif;
      AddFolderIcon( svFolder, "Spice Manual", szProgram + " " + szParam, "",
                     "", 0, "", REPLACE );

    




      if ( !bIsShellExplorer ) then
	      // Global variable UNINST stores the name and location of the
	      // uninstaller file.
	      szProgram = UNINST;
	      LongPathToShortPath( szProgram );
	      LongPathToShortPath( svUninstLogFile );
	      szProgram = szProgram + " -f" + svUninstLogFile;
	      AddFolderIcon( svFolder, "unInstallShield", szProgram,
	                     WINDIR, "", 0, "", REPLACE );
	      Delay( 1 );
      endif;

   // Announce setup complete and offer to read README file.e
   FinalInstallProcess:
      SetStatusWindow( 100, "Installation complete." );

   szMsg = "Setup is complete";
   MessageBox( szMsg, INFORMATION );


exit;

/*---------------------------------------------------------------------------*\
 *
 * Function:  SetupScreen
 *
 *  Purpose:  This function will set up the screen look.  This includes
 *            colors, fonts, text to be displayed, etc.
 *
\*-------------------------------------------------------------------------*/

function SetupScreen()
  NUMBER  nDx, nDy;

begin
   GetExtents( nDx, nDy );

   Enable( FULLWINDOWMODE );
   Enable( INDVFILESTATUS );
   Enable( BITMAP256COLORS );

   SetTitle( "Installing " + APP_NAME , 34, WHITE );

   SetColor( BACKGROUND, RGB(0,128,128) ); // Dark blue.
   SetColor( STATUSBAR, BLUE );     // Bright blue.
   SetTitle( "Setup", 0, BACKGROUNDCAPTION ); // Caption bar text.

   Enable( BACKGROUND );

   Delay( 1 );
end;

/*---------------------------------------------------------------------------*\
 *
 * Function:  CheckRequirements
 *
 *  Purpose:  This function will check all minimum requirements for the
 *            application being installed.  If any fail, then the user
 *            is informed and the installation is terminated.
 *
\*---------------------------------------------------------------------------*/

function CheckRequirements()
   NUMBER  nvDx, nvDy, nvResult;
   STRING  svResult;

begin
   // Check screen resolution.
   GetExtents( nvDx, nvDy );

   if (nvDy < 480) then
      MessageBox( "This program requires VGA or better resolution.", WARNING );
      abort;
   endif;

   // Determine the target system's operating system.
   GetSystemInfo( OS, nvResult, svResult );

   bWinNT           = FALSE;
   bWin32s          = FALSE;
   bIsShellExplorer = FALSE;

   if (nvResult =  IS_WINDOWSNT) then
      bWinNT = TRUE;                   // Running Windows NT.
      // Check to see if the shell being used is EXPLORER shell.
      if (( nvResult = IS_WINDOWSNT ) || ( nvResult = IS_WINDOWS95 )) then
         if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
            if (nvResult >= 4) then
               bIsShellExplorer = TRUE;            
            endif;
         endif;
      endif;

   elseif (nvResult =  IS_WIN32S) then
      bWin32s = TRUE; // Running Win32s.



   elseif (nvResult = IS_WINDOWS95 ) then
      bIsShellExplorer = TRUE;

   endif;

end;

#include "sddialog.rul"

// Source file IS3UG044.RUL

Zerion Mini Shell 1.0