From 3f95d417d9e623ac0c74df8ef11d7a01846392dd Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Wed, 17 Sep 2003 19:07:23 +0000 Subject: Initial Import --- Installshield/Script Files/SETUP.dbg | Bin 0 -> 28652 bytes Installshield/Script Files/SETUP.ino | Bin 0 -> 62667 bytes Installshield/Script Files/SETUP.ins | Bin 0 -> 61044 bytes Installshield/Script Files/Setup.obs | Bin 0 -> 69932 bytes Installshield/Script Files/setup.rul | 798 +++++++++++++++++++++++++++++++++++ 5 files changed, 798 insertions(+) create mode 100644 Installshield/Script Files/SETUP.dbg create mode 100644 Installshield/Script Files/SETUP.ino create mode 100644 Installshield/Script Files/SETUP.ins create mode 100644 Installshield/Script Files/Setup.obs create mode 100644 Installshield/Script Files/setup.rul (limited to 'Installshield/Script Files') diff --git a/Installshield/Script Files/SETUP.dbg b/Installshield/Script Files/SETUP.dbg new file mode 100644 index 0000000..7d395a2 Binary files /dev/null and b/Installshield/Script Files/SETUP.dbg differ diff --git a/Installshield/Script Files/SETUP.ino b/Installshield/Script Files/SETUP.ino new file mode 100644 index 0000000..c654f41 Binary files /dev/null and b/Installshield/Script Files/SETUP.ino differ diff --git a/Installshield/Script Files/SETUP.ins b/Installshield/Script Files/SETUP.ins new file mode 100644 index 0000000..e74384a Binary files /dev/null and b/Installshield/Script Files/SETUP.ins differ diff --git a/Installshield/Script Files/Setup.obs b/Installshield/Script Files/Setup.obs new file mode 100644 index 0000000..776d49e Binary files /dev/null and b/Installshield/Script Files/Setup.obs differ 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, "", 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" + + + + + + + + + + + + + + + + -- cgit v1.2.3