|
|
1.1 ! root 1: '************************************************************************** ! 2: '* MSSetup Toolkit Sample 1 ! 3: '************************************************************************** ! 4: ! 5: '$DEFINE DEBUG ''Define for script development/debugging ! 6: ! 7: '$INCLUDE 'setupapi.inc' ! 8: '$INCLUDE 'msdetect.inc' ! 9: ! 10: ''Dialog ID's ! 11: CONST WELCOME = 100 ! 12: CONST ASKQUIT = 200 ! 13: CONST DESTPATH = 300 ! 14: CONST EXITFAILURE = 400 ! 15: CONST EXITQUIT = 600 ! 16: CONST EXITSUCCESS = 700 ! 17: CONST OPTIONS = 800 ! 18: CONST APPHELP = 900 ! 19: CONST BADPATH = 6400 ! 20: ! 21: ''Bitmap ID ! 22: CONST LOGO = 1 ! 23: ! 24: GLOBAL DEST$ ''Default destination directory. ! 25: GLOBAL OPTCUR$ ''Option selection from option dialog. ! 26: ! 27: DECLARE SUB Install ! 28: DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING ! 29: ! 30: ! 31: INIT: ! 32: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll ! 33: HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure ! 34: ! 35: SetBitmap CUIDLL$, LOGO ! 36: SetTitle "MSSetup Toolkit Sample 1" ! 37: ! 38: szInf$ = GetSymbolValue("STF_SRCINFPATH") ! 39: IF szInf$ = "" THEN ! 40: szInf$ = GetSymbolValue("STF_CWDDIR") + "SAMPLE1.INF" ! 41: END IF ! 42: ReadInfFile szInf$ ! 43: ! 44: OPTCUR$ = "1" ! 45: DEST$ = "C:\DEMO" ! 46: ! 47: '$IFDEF DEBUG ! 48: i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal ! 49: WinDrive$ = MID$(GetWindowsDir, 1, 1) ! 50: IF IsDriveValid(WinDrive$) = 0 THEN ! 51: i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) ! 52: GOTO QUIT ! 53: END IF ! 54: '$ENDIF ''DEBUG ! 55: ! 56: ! 57: WELCOME: ! 58: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) ! 59: IF sz$ = "CONTINUE" THEN ! 60: UIPop 1 ! 61: ELSE ! 62: GOSUB ASKQUIT ! 63: GOTO WELCOME ! 64: END IF ! 65: ! 66: ! 67: OPTION: ! 68: SetSymbolValue "RadioDefault", OPTCUR$ ! 69: OPTL1: ! 70: sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$) ! 71: OPTCUR$ = GetSymbolValue("ButtonChecked") ! 72: ! 73: IF sz$ = "CONTINUE" THEN ! 74: UIPop(1) ! 75: ELSEIF sz$ = "REACTIVATE" THEN ! 76: GOTO OPTL1 ! 77: ELSE ! 78: GOSUB ASKQUIT ! 79: GOTO OPTION ! 80: END IF ! 81: ! 82: ! 83: GETPATH: ! 84: SetSymbolValue "EditTextIn", DEST$ ! 85: SetSymbolValue "EditFocus", "END" ! 86: GETPATHL1: ! 87: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) ! 88: DEST$ = GetSymbolValue("EditTextOut") ! 89: ! 90: IF sz$ = "CONTINUE" THEN ! 91: IF IsDirWritable(DEST$) = 0 THEN ! 92: GOSUB BADPATH ! 93: GOTO GETPATHL1 ! 94: END IF ! 95: UIPop 1 ! 96: ELSEIF sz$ = "REACTIVATE" THEN ! 97: GOTO GETPATHL1 ! 98: ELSEIF sz$ = "BACK" THEN ! 99: UIPop 1 ! 100: GOTO OPTION ! 101: ELSE ! 102: GOSUB ASKQUIT ! 103: GOTO GETPATH ! 104: END IF ! 105: ! 106: ! 107: Install ! 108: ! 109: ! 110: QUIT: ! 111: ON ERROR GOTO ERRQUIT ! 112: ! 113: IF ERR = 0 THEN ! 114: dlg% = EXITSUCCESS ! 115: ELSEIF ERR = STFQUIT THEN ! 116: dlg% = EXITQUIT ! 117: ELSE ! 118: dlg% = EXITFAILURE ! 119: END IF ! 120: QUITL1: ! 121: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") ! 122: IF sz$ = "REACTIVATE" THEN ! 123: GOTO QUITL1 ! 124: END IF ! 125: UIPop 1 ! 126: ! 127: END ! 128: ! 129: ERRQUIT: ! 130: i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) ! 131: END ! 132: ! 133: ! 134: ! 135: BADPATH: ! 136: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") ! 137: IF sz$ = "REACTIVATE" THEN ! 138: GOTO BADPATH ! 139: END IF ! 140: UIPop 1 ! 141: RETURN ! 142: ! 143: ! 144: ! 145: ASKQUIT: ! 146: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") ! 147: ! 148: IF sz$ = "EXIT" THEN ! 149: UIPopAll ! 150: ERROR STFQUIT ! 151: ELSEIF sz$ = "REACTIVATE" THEN ! 152: GOTO ASKQUIT ! 153: ELSE ! 154: UIPop 1 ! 155: END IF ! 156: RETURN ! 157: ! 158: ! 159: ! 160: '** ! 161: '** Purpose: ! 162: '** Builds the copy list and performs all installation operations. ! 163: '** Arguments: ! 164: '** none. ! 165: '** Returns: ! 166: '** none. ! 167: '************************************************************************* ! 168: SUB Install STATIC ! 169: ! 170: SrcDir$ = GetSymbolValue("STF_SRCDIR") ! 171: CreateDir DEST$, cmoNone ! 172: ! 173: OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0 ! 174: WriteToLogFile "" ! 175: WriteToLogFile " User chose as destination directory: '" + DEST$ + "'" ! 176: WriteToLogFile " User chose option: '" + OPTCUR$ + "'" ! 177: WriteToLogFile "" ! 178: WriteToLogFile "May have had to create the directory: " + DEST$ ! 179: WriteToLogFile "" ! 180: ! 181: AddSectionFilesToCopyList "Files", SrcDir$, DEST$ ! 182: AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$ ! 183: CopyFilesInCopyList ! 184: ! 185: ini$ = MakePath(DEST$, "DEMO.INI") ! 186: CreateIniKeyValue "WIN.INI", "MSSetup Sample 1", "Option", OPTCUR$, cmoNone ! 187: CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone ! 188: CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone ! 189: CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone ! 190: ! 191: CreateProgmanGroup "MSSetup Sample 1", "", cmoNone ! 192: ShowProgmanGroup "MSSetup Sample 1", 1, cmoNone ! 193: CreateProgmanItem "MSSetup Sample 1", "dialogs", "dlgedit.exe "+MakePath(DEST$,"dialogs.res"), "", cmoOverwrite ! 194: CreateProgmanItem "MSSetup Sample 1", "dlgprocs.c", "notepad.exe "+MakePath(DEST$,"dlgprocs.c"), "", cmoOverwrite ! 195: ! 196: AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone ! 197: ! 198: CloseLogFile ! 199: ! 200: END SUB ! 201: ! 202: ! 203: ! 204: '** ! 205: '** Purpose: ! 206: '** Appends a file name to the end of a directory path, ! 207: '** inserting a backslash character as needed. ! 208: '** Arguments: ! 209: '** szDir$ - full directory path (with optional ending "\") ! 210: '** szFile$ - filename to append to directory ! 211: '** Returns: ! 212: '** Resulting fully qualified path name. ! 213: '************************************************************************* ! 214: FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING ! 215: IF szDir$ = "" THEN ! 216: MakePath = szFile$ ! 217: ELSEIF szFile$ = "" THEN ! 218: MakePath = szDir$ ! 219: ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN ! 220: MakePath = szDir$ + szFile$ ! 221: ELSE ! 222: MakePath = szDir$ + "\" + szFile$ ! 223: END IF ! 224: END FUNCTION ! 225:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.