summaryrefslogtreecommitdiff
path: root/Installshield/Script Files/setup.rul
diff options
context:
space:
mode:
Diffstat (limited to 'Installshield/Script Files/setup.rul')
-rw-r--r--Installshield/Script Files/setup.rul798
1 files changed, 798 insertions, 0 deletions
diff --git a/Installshield/Script Files/setup.rul b/Installshield/Script Files/setup.rul
new file mode 100644
index 0000000..207d6f6
--- /dev/null
+++ b/Installshield/Script Files/setup.rul
@@ -0,0 +1,798 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// IIIIIII SSSSSS
+// II SS InstallShield (R)
+// II SSSSSS (c) 1996-1997, InstallShield Software Corporation
+// II SS (c) 1990-1996, InstallShield Corporation
+// IIIIIII SSSSSS All Rights Reserved.
+//
+//
+// This code is generated as a starting setup template. You should
+// modify it to provide all necessary steps for your setup.
+//
+//
+// File Name: Setup.rul
+//
+// Description: InstallShield script
+//
+// Comments: This template script performs a basic setup on a
+// Windows 95 or Windows NT 4.0 platform. With minor
+// modifications, this template can be adapted to create
+// new, customized setups.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+
+ // Include header file
+#include "sdlang.h"
+#include "sddialog.h"
+
+////////////////////// string defines ////////////////////////////
+
+#define UNINST_LOGFILE_NAME "Uninst.isu"
+
+//////////////////// installation declarations ///////////////////
+
+ // ----- DLL prototypes -----
+
+ prototype nscmpts.DllRegisterServer();
+ prototype netcmpts.DllRegisterServer();
+ prototype nscmpts.DllUnregisterServer();
+ prototype netcmpts.DllUnregisterServer();
+ prototype atl.DllRegisterServer();
+ prototype xpyex.DllRegisterServer();
+
+
+ // ---- script prototypes -----
+
+ // generated
+ prototype ShowDialogs();
+ prototype MoveFileData();
+ prototype HandleMoveDataError( NUMBER );
+ prototype ProcessBeforeDataMove();
+ prototype ProcessAfterDataMove();
+ prototype SetupRegistry();
+ prototype SetupFolders();
+ prototype CleanUpInstall();
+ prototype SetupInstall();
+ prototype SetupScreen();
+ prototype CheckRequirements();
+ prototype DialogShowSdAskDestPath();
+ prototype DialogShowSdSetupType();
+ prototype DialogShowSdComponentDialog2();
+ prototype DialogShowSdSelectFolder();
+ prototype DialogShowSdFinishReboot();
+ prototype UninstallPrevious();
+
+ // your prototypes
+
+
+
+ // ----- global variables ------
+
+ // generated
+ BOOL bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup;
+ STRING svDir;
+ STRING szXpyExDir;
+ STRING svName, svCompany, svSerial;
+ STRING svDefGroup;
+ STRING szAppPath;
+ STRING svSetupType;
+
+
+ // your global variables
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// MAIN PROGRAM
+//
+// The setup begins here by hiding the visible setup
+// window. This is done to allow all the titles, images, etc. to
+// be established before showing the main window. The following
+// logic then performs the setup in a series of steps.
+//
+///////////////////////////////////////////////////////////////////////////////
+program
+ Disable( BACKGROUND );
+ SetColor( BACKGROUND, BK_BLUE | BK_SMOOTH);
+
+ CheckRequirements();
+
+ SetupInstall();
+
+ SetupScreen();
+
+ if (ShowDialogs()<0) goto end_install;
+
+ if (UninstallPrevious() <0) goto end_install;
+
+ if (ProcessBeforeDataMove()<0) goto end_install;
+
+ if (MoveFileData()<0) goto end_install;
+
+ if (ProcessAfterDataMove()<0) goto end_install;
+
+ if (SetupRegistry()<0) goto end_install;
+
+ if (SetupFolders()<0) goto end_install;
+
+
+ end_install:
+
+ CleanUpInstall();
+
+ // If an unrecoverable error occurred, clean up the partial installation.
+ // Otherwise, exit normally.
+
+ if (bInstallAborted) then
+ abort;
+ endif;
+
+endprogram
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: ShowDialogs //
+// //
+// Purpose: This function manages the display and navigation //
+// the standard dialogs that exist in a setup. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function ShowDialogs()
+ NUMBER nResult;
+ begin
+
+ Dlg_Start:
+ // beginning of dialogs label
+
+ Dlg_SdAskDestPath:
+ nResult = DialogShowSdAskDestPath();
+ if (nResult = BACK) goto Dlg_Start;
+
+ //Dlg_SdSetupType:
+ // nResult = DialogShowSdSetupType();
+ // if (nResult = BACK) goto Dlg_SdAskDestPath;
+
+ Dlg_SdComponentDialog2:
+ nResult = DialogShowSdComponentDialog2();
+ if (nResult = BACK) goto Dlg_SdAskDestPath;
+//
+// Dlg_SdSelectFolder:
+// nResult = DialogShowSdSelectFolder();
+// if (nResult = BACK) goto Dlg_SdSetupType;
+
+ return 0;
+
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// UninstallPrevious
+//
+// Does a quick uninstall of the previous version
+//
+///////////////////////////////////////////////////////////////////////////////
+function UninstallPrevious()
+ STRING szTemp;
+ begin
+
+ szTemp = TARGETDIR ^ "nscmpts.dll";
+
+ if(Is(FILE_EXISTS, szTemp)) then
+ UseDLL(szTemp);
+ nscmpts.DllUnregisterServer();
+ UnUseDLL(szTemp);
+ endif;
+
+ szTemp = TARGETDIR ^ "netcmpts.dll";
+
+ if(Is(FILE_EXISTS, szTemp)) then
+ UseDLL(szTemp);
+ netcmpts.DllUnregisterServer();
+ UnUseDLL(szTemp);
+ endif;
+
+ // Remove old stuff...
+ RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
+ RegDBDeleteKey ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\SecSetup.exe" );
+ RegDBDeleteKey ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\NightSec.exe" );
+
+ DeleteFile("SecSetup.exe");
+ DeleteFile("NightSec.exe");
+ DeleteFile("ntmode.pif");
+ DeleteFile("nightsec.gid");
+
+end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: ProcessBeforeDataMove //
+// //
+// Purpose: This function performs any necessary operations prior to the //
+// actual data move operation. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function ProcessBeforeDataMove()
+ STRING svLogFile;
+ NUMBER nResult;
+ begin
+
+ nResult = InstallationInfo( "Heavenly Helpers", @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY );
+
+ svLogFile = UNINST_LOGFILE_NAME;
+
+ DeinstallStart( TARGETDIR, svLogFile, @UNINST_KEY, 0 );
+ if (nResult < 0) then
+ MessageBox( @ERROR_UNINSTSETUP, WARNING );
+ endif;
+
+ szAppPath = TARGETDIR; // TODO : if your application .exe is in a subdir of TARGETDIR then add subdir
+
+ if ((bIs32BitSetup) && (bIsShellExplorer)) then
+ RegDBSetItem( REGDB_APPPATH, szAppPath );
+ RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY );
+ RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME );
+ endif;
+
+ // TODO : update any items you want to process before moving the data
+ //
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: MoveFileData //
+// //
+// Purpose: This function handles the data movement for //
+// the setup. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function MoveFileData()
+ NUMBER nResult, nDisk;
+ begin
+
+ nDisk = 1;
+ SetStatusWindow( 0, "" );
+ Disable( DIALOGCACHE );
+ Enable( STATUS );
+ StatusUpdate( ON, 100 );
+ nResult = ComponentMoveData( MEDIA, nDisk, 0 );
+
+ HandleMoveDataError( nResult );
+
+ Disable( STATUS );
+
+ return nResult;
+
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: HandleMoveDataError //
+// //
+// Purpose: This function handles the error (if any) during the move data //
+// operation. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function HandleMoveDataError( nResult )
+ begin
+
+ switch (nResult)
+ case 0:
+ return 0;
+ default:
+ SprintfBox( SEVERE, @TITLE_CAPTIONBAR, @ERROR_MOVEDATA, nResult );
+ bInstallAborted = TRUE;
+ return nResult;
+ endswitch;
+
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: ProcessAfterDataMove //
+// //
+// Purpose: This function performs any necessary operations needed after //
+// all data has been moved. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function ProcessAfterDataMove()
+ STRING szReferenceFile;
+ NUMBER nResult;
+ BOOL bAllSuccess;
+ STRING szTemp;
+begin
+
+ // We do self registration here and incase of errors
+
+ bAllSuccess = TRUE;
+
+ szTemp = WINSYSDIR ^ "atl.dll";
+
+ if(Is(FILE_EXISTS, szTemp)) then
+ nResult = UseDLL(szTemp);
+ nResult = atl.DllRegisterServer();
+ UnUseDLL(szTemp);
+
+ if (nResult < 0) then
+ bAllSuccess = FALSE;
+ endif;
+ endif;
+
+ szTemp = TARGETDIR ^ "nscmpts.dll";
+
+ if(Is(FILE_EXISTS, szTemp)) then
+ nResult = UseDLL(szTemp);
+ nResult = nscmpts.DllRegisterServer();
+ UnUseDLL(szTemp);
+
+ if (nResult < 0) then
+ bAllSuccess = FALSE;
+ endif;
+ endif;
+
+ szTemp = TARGETDIR ^ "netcmpts.dll";
+
+ if(Is(FILE_EXISTS, szTemp)) then
+ nResult = UseDLL(szTemp);
+ nResult = netcmpts.DllRegisterServer();
+ UnUseDLL(szTemp);
+
+ if (nResult < 0) then
+ bAllSuccess = FALSE;
+ endif;
+ endif;
+
+ szTemp = szXpyExDir ^ "xpyex.dll";
+
+ if(Is(FILE_EXISTS, szTemp)) then
+ nResult = UseDLL(szTemp);
+ nResult = xpyex.DllRegisterServer();
+ UnUseDLL(szTemp);
+
+ if (nResult < 0) then
+ bAllSuccess = FALSE;
+ endif;
+ endif;
+
+
+ if(!bAllSuccess) then
+ // If we fail in the Registration then setup for registration
+ // on reboot
+ endif;
+
+
+
+ // DeinstallSetReference specifies a file to be checked before
+ // uninstallation. If the file is in use, uninstallation will not proceed.
+
+ szReferenceFile = TARGETDIR ^ "nscmpts.dll"; // TODO : If your file is in a subdir of svDir add that here
+ DeinstallSetReference( szReferenceFile );
+
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: SetupRegistry //
+// //
+// Purpose: This function makes the registry entries for this setup. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function SetupRegistry()
+ STRING szValue;
+ NUMBER nType;
+ NUMBER nSize;
+ begin
+
+ // TODO : Add all your registry entry keys here
+ //
+ //
+ // RegDBCreateKeyEx, RegDBSetKeyValueEx....
+ //
+
+ // Also create all folders that we want to remove on uninstall
+
+ // App Paths
+ RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
+ RegDBCreateKeyEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Shutdown.exe" , "" );
+ RegDBCreateKeyEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Checklist.exe" , "" );
+ RegDBCreateKeyEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\CmdLine.exe" , "" );
+
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Shutdown.exe" , "" , REGDB_STRING, TARGETDIR ^ "Shutdown.exe" , -1 );
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Shutdown.exe" , "Path" , REGDB_STRING, TARGETDIR, -1 );
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Checklist.exe" , "" , REGDB_STRING, TARGETDIR ^ "Checklist.exe" , -1 );
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Checklist.exe" , "Path" , REGDB_STRING, TARGETDIR, -1 );
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\CmdLine.exe" , "" , REGDB_STRING, TARGETDIR ^ "CmdLine.exe" , -1 );
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\CmdLine.exe" , "Path" , REGDB_STRING, TARGETDIR, -1 );
+
+
+ // Path for later setups
+ RegDBCreateKeyEx ( "Software\\Heavenly Helpers\\Night Security" , "" );
+ RegDBSetKeyValueEx ( "Software\\Heavenly Helpers\\Night Security", "Path", REGDB_STRING, TARGETDIR, -1);
+
+ // Run Checklist after Reboot and
+ // Register Components after reboot
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "NightSec_Checklist", REGDB_STRING, TARGETDIR ^ "Checklist.exe /regserver", -1);
+
+ // Important Component Positions
+ RegDBSetDefaultRoot ( HKEY_CURRENT_USER );
+ RegDBCreateKeyEx ( "Software\\Heavenly Helpers\\Night Security" , "" );
+ RegDBCreateKeyEx ( "Software\\Heavenly Helpers\\Night Security\\Components" , "" );
+
+ // Important Initial Positions of Components
+ RegDBSetKeyValueEx ( "Software\\Heavenly Helpers\\Night Security\\Components\\NightSecurity.WipefreeSpace" , "Position" , REGDB_NUMBER , "10" , -1 );
+ RegDBSetKeyValueEx ( "Software\\Heavenly Helpers\\Night Security\\Components\\NightSecurity.Encrypt" , "Position" , REGDB_NUMBER , "0" , -1 );
+
+
+ if( RegDBGetKeyValueEx ( "Software\\Heavenly Helpers\\Night Security\\Components\\NightSecurity.Encrypt" , "Ignore0000" , nType , szValue , nSize ) < 0) then
+ RegDBSetKeyValueEx ( "Software\\Heavenly Helpers\\Night Security\\Components\\NightSecurity.Encrypt" , "Ignore0000" , REGDB_STRING , "lnk" , -1 );
+ endif;
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Function: SetupFolders
+//
+// Purpose: This function creates all the folders and shortcuts for the
+// setup. This includes program groups and items for Windows 3.1.
+//
+///////////////////////////////////////////////////////////////////////////////
+function SetupFolders()
+STRING svPath, svShutdownPath;
+ begin
+
+
+ // TODO : Add all your folder (program group) along with shortcuts (program items)
+ //
+ //
+ // CreateProgramFolder, AddFolderIcon....
+ //
+ // Note : for 16-bit setups you should add an uninstaller icon pointing to
+ // your log file. Under 32-bit this is automatically done by Windows.
+ svPath = TARGETDIR ^ "Checklist.exe";
+ svShutdownPath = TARGETDIR ^ "Shutdown.exe";
+ LongPathToQuote ( svPath , TRUE );
+ LongPathToQuote ( svShutdownPath , TRUE );
+ AddFolderIcon ( "Night Security" , "Night Security Checklist" , svPath , "" , "" , 0 , "" , REPLACE );
+ AddFolderIcon ( "Night Security" , "Secure Shutdown" , svShutdownPath , "" , "" , 0 , "" , REPLACE );
+ AddFolderIcon ( FOLDER_STARTMENU , "Secure Shutdown" , svShutdownPath , "" , "" , 0 , "" , REPLACE );
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: CleanUpInstall //
+// //
+// Purpose: This cleans up the setup. Anything that should //
+// be released or deleted at the end of the setup should //
+// be done here. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function CleanUpInstall()
+ NUMBER nResult;
+ begin
+
+
+ if (bInstallAborted) then
+ return 0;
+ endif;
+
+ nResult = DialogShowSdFinishReboot();
+
+ if (BATCH_INSTALL) then // ensure locked files are properly written
+ CommitSharedFiles(0);
+ endif;
+
+ if(nResult == 0 || nResult == NEXT) then
+ // Remove Checklist after reboot key
+ RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
+ RegDBDeleteValue ( "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "NightSec_Checklist");
+
+ // Only have Register Key
+ RegDBSetKeyValueEx ( "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "NightSec_Reg", REGDB_STRING, TARGETDIR ^ "Checklist.exe /regserver /close", -1);
+ endif;
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: SetupInstall //
+// //
+// Purpose: This will setup the installation. Any general initialization //
+// needed for the installation should be performed here. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function SetupInstall()
+ begin
+
+ Enable( CORECOMPONENTHANDLING );
+// Enable( SELFREGISTERBATCH );
+
+ bInstallAborted = FALSE;
+
+ if (bIs32BitSetup) then
+ svDir = PROGRAMFILES ^ @COMPANY_NAME ^ @PRODUCT_NAME;
+ else
+ svDir = PROGRAMFILES ^ @COMPANY_NAME16 ^ @PRODUCT_NAME16; // use shorten names
+ endif;
+
+ TARGETDIR = svDir;
+
+ SdProductName( @PRODUCT_NAME );
+
+ Enable( DIALOGCACHE );
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: SetupScreen //
+// //
+// Purpose: This function establishes the screen look. This includes //
+// colors, fonts, and text to be displayed. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function SetupScreen()
+ begin
+
+ Enable( FULLWINDOWMODE );
+
+ PlaceBitmap ( SRCDIR ^ "setup.bmp" , 123 , 10 , 10 , UPPER_LEFT );
+
+ SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
+
+ Enable( BACKGROUND );
+
+ Delay( 1 );
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: CheckRequirements //
+// //
+// Purpose: This function checks all minimum requirements for the //
+// application being installed. If any fail, then the user //
+// is informed and the setup is terminated. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function CheckRequirements()
+ NUMBER nvDx, nvDy, nvResult;
+ STRING svResult;
+
+begin
+
+ bWinNT = FALSE;
+ bIsShellExplorer = FALSE;
+
+ // Check screen resolution.
+ GetExtents( nvDx, nvDy );
+
+ if (nvDy < 480) then
+ MessageBox( @ERROR_VGARESOLUTION, WARNING );
+ abort;
+ endif;
+
+ // set 'setup' operation mode
+ bIs32BitSetup = TRUE;
+ GetSystemInfo( ISTYPE, nvResult, svResult );
+ if (nvResult = 16) then
+ bIs32BitSetup = FALSE; // running 16-bit setup
+ return 0; // no additional information required
+ endif;
+
+ // --- 32-bit testing after this point ---
+
+ // Determine the target system's operating system.
+ GetSystemInfo( OS, nvResult, svResult );
+
+ if (nvResult = IS_WINDOWSNT) then
+ // Running Windows NT.
+ bWinNT = TRUE;
+
+ // Check to see if the shell being used is EXPLORER shell.
+ if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
+ if (nvResult >= 4) then
+ bIsShellExplorer = TRUE;
+ endif;
+ endif;
+
+ elseif (nvResult = IS_WINDOWS95 ) then
+ bIsShellExplorer = TRUE;
+
+ endif;
+
+end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdAskDestPath //
+// //
+// Purpose: This function asks the user for the destination directory. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdAskDestPath()
+ NUMBER nResult, nvSize, nvType;
+ STRING szTitle, szMsg, szTemp;
+ begin
+
+ // If it was installed before we should have path
+ RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
+ RegDBGetKeyValueEx ( "Software\\Heavenly Helpers\\Night Security", "Path", nvType, svDir, nvSize);
+
+
+ szTitle = "";
+ szMsg = "";
+ nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 );
+
+ TARGETDIR = svDir;
+ szXpyExDir = COMMONFILES ^ "Xpy Ex";
+ CreateDir(szXpyExDir);
+ ComponentSetTarget(MEDIA, "<XPYEXDIR>", szXpyExDir);
+
+ return nResult;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdSetupType //
+// //
+// Purpose: This function displays the standard setup type dialog. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdSetupType()
+ NUMBER nResult, nType;
+ STRING szTitle, szMsg;
+ begin
+
+ switch (svSetupType)
+ case "Typical":
+ nType = TYPICAL;
+ case "Custom":
+ nType = CUSTOM;
+ case "Compact":
+ nType = COMPACT;
+ case "":
+ svSetupType = "Typical";
+ nType = TYPICAL;
+ endswitch;
+
+ szTitle = "";
+ szMsg = "";
+ nResult = SetupType( szTitle, szMsg, "", nType, 0 );
+
+ switch (nResult)
+ case COMPACT:
+ svSetupType = "Compact";
+ case TYPICAL:
+ svSetupType = "Typical";
+ case CUSTOM:
+ svSetupType = "Custom";
+ endswitch;
+
+ return nResult;
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdComponentDialog2 //
+// //
+// Purpose: This function displays the custom component dialog. //
+// //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdComponentDialog2()
+ NUMBER nResult;
+ STRING szTitle, szMsg;
+ begin
+
+ if ((svSetupType != "Custom") && (svSetupType != "")) then
+ return 0;
+ endif;
+
+ ComponentSelectItem( MEDIA, "Network Components", FALSE );
+
+ szTitle = "";
+ szMsg = "Usually you wouldn't need to change any of these settings. Just click the next button.";
+
+ nResult = SdComponentDialog2( szTitle, szMsg, svDir, "" );
+
+ return nResult;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdSelectFolder //
+// //
+// Purpose: This function displays the standard folder selection dialog. //
+// //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdSelectFolder()
+ NUMBER nResult;
+ STRING szTitle, szMsg;
+ begin
+
+ if (svDefGroup = "") then
+ svDefGroup = @FOLDER_NAME;
+ endif;
+
+ szTitle = "";
+ szMsg = "";
+ nResult = SdSelectFolder( szTitle, szMsg, svDefGroup );
+
+
+
+ return nResult;
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdFinishReboot //
+// //
+// Purpose: This function will show the last dialog of the product. //
+// It will allow the user to reboot and/or show some readme text. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdFinishReboot()
+ NUMBER nResult, nDefOptions;
+ STRING szTitle, szMsg1, szMsg2, szOption1, szOption2, szCommand;
+ NUMBER bOpt1, bOpt2;
+ begin
+
+ if (!BATCH_INSTALL) then
+ bOpt1 = TRUE;
+ bOpt2 = FALSE;
+ szMsg1 = "";
+ szMsg2 = "";
+ szOption1 = "Run Night Security checklist now";
+ szOption2 = "";
+ nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );
+
+ if (bOpt1) then
+ szCommand = TARGETDIR ^ "Checklist.exe";
+ LaunchApp ( szCommand , "" );
+ endif;
+ return 0;
+ endif;
+
+ nDefOptions = SYS_BOOTMACHINE;
+ szTitle = "";
+ szMsg1 = "";
+ szMsg2 = "";
+ nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 );
+
+ return nResult;
+ end;
+
+ // --- include script file section ---
+
+#include "sddialog.rul"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+