home *** CD-ROM | disk | FTP | other *** search
/ Computer Tool Software / soft.iso / Scanner / SPOR / SCANTAK2 / SETUP.MS_ < prev    next >
Encoding:
Text File  |  1996-06-03  |  8.6 KB  |  341 lines

  1. '$DEFINE DEBUG  ''Define for script/development/debugging
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4. '$INCLUDE 'msdetect.inc'
  5.  
  6. ''Dialog ID's
  7. CONST WELCOME       = 100
  8. CONST ASKQUIT       = 200
  9. CONST DESTPATH      = 300
  10. CONST EXITFAILURE   = 400
  11. CONST EXITQUIT      = 600
  12. CONST EXITSUCCESS   = 700
  13. ''CONST OPTIONS       = 800
  14. CONST APPHELP       = 900
  15. ''CONST TEMPPATH      = 1000
  16. ''CONST PSDIR         = 1100
  17. ''CONST ASKPSTYLER    = 1200
  18. CONST NOSPACE       = 1300
  19. CONST TWAINEXIST    = 1400
  20. ''CONST PLUGEXIST     = 1500
  21. ''CONST BADPATH       = 6400
  22. CONST SPACENEED     = 400000
  23. CONST PSSPACENEED   = 26800
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. GLOBAL PSPATH$
  29. GLOBAL DEST$
  30. GLOBAL SrcDir$
  31. GLOBAL Interface$
  32. GLOBAL ASPISRC$
  33. GLOBAL ASPIDEST$
  34. GLOBAL ShowMem$
  35.  
  36. DECLARE SUB Install
  37. ''DECLARE SUB InstallPLUG
  38. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  39.  
  40.  
  41. INIT:
  42.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  43.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  44.  
  45. ''  SetBitmap CUIDLL$, LOGO
  46.     SetTitle "Easy Twain Module Setup"
  47.  
  48.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  49.     IF szInf$ = "" THEN
  50.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  51.     END IF
  52.     ReadInfFile szInf$
  53.  
  54. '$IFDEF DEBUG
  55.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  56.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  57.     IF IsDriveValid(WinDrive$) = 0 THEN
  58.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  59.         GOTO QUIT
  60.     END IF
  61. '$ENDIF ''DEBUG
  62.  
  63.  
  64. WELCOME:
  65.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  66.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  67.     IF sz$ = "CONTINUE" THEN
  68.         GOSUB GETDEST
  69.         IF DEST$ = "" THEN
  70.            GOTO WELCOME
  71.         ENDIF
  72.         UIPop 1
  73.     ELSE
  74.         GOSUB ASKQUIT
  75.         GOTO WELCOME
  76.     END IF
  77.  
  78.     GOTO INSTRTN
  79.  
  80. 'ASKPS:
  81. '    sz$ = UIStartDlg(CUIDLL$, ASKPSTYLER, "FInfoDlgProc", APPHELP, HELPPROC$)
  82. '    IF sz$ = "CONTINUE" THEN
  83. '        UIPop 1
  84. '    ELSEIF sz$ = "BACK" THEN
  85. '        UIPop 1
  86. '        GOTO INSTRTN
  87. '    ELSE
  88. '        GOSUB ASKQUIT
  89. '        GOTO WELCOME
  90. '    END IF
  91.  
  92. 'GETDIR:
  93. '    sz$ = UIStartDlg(CUIDLL$, PSDIR, "GetDirDlgProc", APPHELP, HELPPROC$)
  94. '    PSPATH$ = GetSymbolValue("DirPath")
  95. '    ini$ = MakePath(PSPATH$, "PSTYLER.INI")
  96. '    IMV$ = GetSymbolValue("IMV")
  97. '    IMS$ = GetSymbolValue("IMS")
  98. '    IMA$ = GetSymbolValue("IMA")
  99.  
  100. '    IF sz$ = "CONTINUE" THEN
  101. '        drive$ = MID$(PSPATH$, 1, 1)
  102. '        free& = GetFreeSpaceForDrive(drive$)
  103. '        IF free& < PSSPACENEED THEN
  104. '            GOSUB NOSPACE
  105. '            GOTO GETDIR
  106. '        ENDIF
  107. '        UIPop 1
  108. '        AddSectionFilesToCopyList "PLUGTW", SrcDir$, PSPATH$
  109. ''** installPLUG
  110. '    ELSEIF sz$ = "NONEED" THEN
  111. '        UIPop 1
  112. '        GOSUB PLUGEXIST
  113. '    ELSEIF sz$ = "ERROR" THEN
  114. '        GOSUB BADPATH
  115. '        GOTO GETDIR
  116. '    ELSEIF sz$ = "REACTIVATE" THEN
  117. '        GOTO GETDIR
  118. '    ELSEIF sz$ = "BACK" THEN
  119. '        UIPop 1
  120. '        GOTO ASKPS
  121. '    ELSE
  122. '        GOSUB ASKQUIT
  123. '        GOTO  GETDIR
  124. '    END IF
  125. '
  126. '    IF IMV$ <> "0" THEN
  127. '        CreateIniKeyValue ini$, "IMPORT", "IM", IMV$, cmoOverwrite
  128. '        IF IMS$ <> "0" THEN
  129. '            CreateIniKeyValue ini$, "IMPORT", IMS$, "Select...;PLUGTW.EXE;Plugtw;1" , cmoNone
  130. '        ENDIF
  131. '
  132. '        IF IMA$ <> "0" THEN
  133. '            CreateIniKeyValue ini$, "IMPORT", IMA$, "Acquire...;PLUGTW.EXE;Plugtw;2" , cmoNone
  134. '        ENDIF
  135. '    ENDIF
  136.  
  137.  
  138. INSTRTN:
  139. '   IF DoesFileExist(MakePath(DEST$,"TWAIN.DLL"), femExists)=1 THEN
  140. '       GOSUB TWAINEXIST
  141. '   ELSE
  142.     i%=GetWindowsMinorVersion()
  143. '   IF i%=1  THEN
  144. '       j%=DoMsgBox("1.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  145. '   ELSEIF i%=2 THEN
  146. '       j%=DoMsgBox("2.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  147. '   ELSEIF i%=3 THEN
  148. '       j%=DoMsgBox("3.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  149. '   ELSEIF i%=4  THEN
  150. '       j%=DoMsgBox("4.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  151. '   ELSEIF i%=95 THEN
  152. '       j%=DoMsgBox("95", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  153. '   ELSE
  154. '       j%=DoMsgBox("none", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  155. '   ENDIF
  156.  
  157.     IF i%<95 THEN
  158. '       RenameFile MakePath(SrcDiir$,"TWAIN31.DLL"),"TWAIN.DLL"
  159.         AddSectionFilesToCopyList "TWAIN31", SrcDir$, DEST$
  160.     ELSE
  161. '       RenameFile MakePath(SrcDiir$,"TWAIN95.DLL"),"TWAIN.DLL"
  162.         AddSectionFilesToCopyList "TWAIN95", SrcDir$, DEST$
  163.     ENDIF
  164.  
  165. 'GETINTERFACE:
  166. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  167. '    IF sz$ = "CONTINUE" THEN
  168. '        UIPop 1
  169. '        Interface$ = GetSymbolValue("ButtonChecked")
  170. '    ELSE
  171. '        UIPop 1
  172. '        GOSUB ASKQUIT
  173. '       GOTO GETINTERFACE
  174. '    ENDIF
  175.  
  176. ''  ShowMem$ = GetSymbolValue("DisplayMem")
  177.  
  178.     Install
  179.     RemoveFile MakePath(DEST$,"TWAIN.DLL"), cmoForce
  180.     i%=GetWindowsMinorVersion()
  181.     if i%<95 THEN
  182.         sz$ = MakePath(DEST$,"TWAIN31.DLL")
  183.         RenameFile sz$,"TWAIN.DLL"
  184.     else
  185.         sz$ = MakePath(DEST$,"TWAIN95.DLL")
  186.         RenameFile sz$,"TWAIN.DLL"
  187.     ENDIF
  188.  
  189. QUIT:
  190.     ON ERROR GOTO ERRQUIT
  191.  
  192.     IF ERR = 0 THEN
  193.         dlg% = EXITSUCCESS
  194.     ELSE
  195.         dlg% = EXITQUIT
  196.     END IF
  197. QUITL1:
  198.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  199.     IF sz$ = "REACTIVATE" THEN
  200.         GOTO QUITL1
  201.     END IF
  202.     UIPop 1
  203.  
  204.     END
  205.  
  206. ERRQUIT:
  207.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  208.     END
  209.  
  210.  
  211. ''BADPATH:
  212. ''    sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  213. ''    IF sz$ = "REACTIVATE" THEN
  214. ''        GOTO BADPATH
  215. ''    END IF
  216. ''    UIPop 1
  217. ''    RETURN
  218.  
  219.  
  220. GETDEST:
  221.     DEST$ = GetWindowsDir()
  222.     drive$ = MID$(DEST$, 1, 1)
  223.     free& = GetFreeSpaceForDrive(drive$)
  224.     IF free& < SPACENEED THEN
  225.         GOSUB NOSPACE
  226.         DEST$ = ""
  227.     ENDIF
  228.     RETURN
  229.  
  230.  
  231. NOSPACE:
  232.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "FInfo0DlgProc", 0, "")
  233.     IF sz$ = "REACTIVATE" THEN
  234.         GOTO NOSPACE
  235.     ENDIF
  236.     UIPop 1
  237.     RETURN
  238.  
  239.  
  240. ASKQUIT:
  241.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  242.  
  243.     IF sz$ = "EXIT" THEN
  244.         UIPopAll
  245.         ERROR STFQUIT
  246.     ELSEIF sz$ = "REACTIVATE" THEN
  247.         GOTO ASKQUIT
  248.     ELSE
  249.         UIPop 1
  250.     END IF
  251.     RETURN
  252.  
  253.  
  254. ''PLUGEXIST:
  255. ''    sz$ = UIStartDlg(CUIDLL$, PLUGEXIST, "FQuitDlgProc", 0, "")
  256. '    IF sz$ = "CONTINUE" THEN
  257. '       UIPop 1
  258. '       AddSectionFilesToCopyList "PLUGTW", SrcDir$, PSPATH$
  259. '** installPLUG
  260. '    ELSEIF sz$ = "REACTIVATE" THEN
  261. '       GOTO PLUGEXIST
  262. '    ELSE
  263. '       UIPop 1
  264. '    ENDIF
  265. '    RETURN
  266.  
  267.  
  268. TWAINEXIST:
  269.      sz$ = UIStartDlg(CUIDLL$, TWAINEXIST, "FOverWriteDlgProc", 0, "")
  270.      IF sz$ = "CONTINUE" THEN
  271.         UIPop 1
  272.         AddSectionFilesToCopyList "TWAIN", SrcDir$, DEST$
  273.      ELSEIF sz$ = "EXIT" THEN
  274.          UIPop 1
  275.          GOTO ASKQUIT
  276.      ELSE
  277.          UIPop 1
  278.      ENDIF
  279.      RETURN
  280.  
  281. '**
  282. '** Purpose:
  283. '**     Builds the copy list and performs all installation operations.
  284. '** Arguments:
  285. '**     none.
  286. '** Returns:
  287. '**     none.
  288. '*************************************************************************
  289. SUB Install STATIC
  290.     ASPIDEST$ = MakePath(DEST$, "TWAIN")
  291. '    IF DoesFileExist(MakePath(ASPIDEST$,"SCAN.PAR"), femExists)=1 THEN
  292. '        RemoveFile MakePath(ASPIDEST$,"SCAN.PAR"), cmoForce
  293. '    ENDIF
  294. '    IF Interface$ = "2" THEN
  295. '        ASPISRC$ = MakePath(SrcDir$, "ASPI")
  296. '        ASPIDEST$ = MakePath(DEST$, "TWAIN")
  297. '        AddSectionFilesToCopyList "ASPI", ASPISRC$, ASPIDEST$
  298. '    ENDIF
  299.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  300.     CopyFilesInCopyList
  301.  
  302. END SUB
  303.  
  304.  
  305. 'SUB InstallPLUG STATIC
  306.  
  307. '    SrcDir$ = GetSymbolValue("STF_SRCDIR")
  308.  
  309. '    AddSectionFilesToCopyList "PLUGTW", SrcDir$, PSPATH$
  310. '    CopyFilesInCopyList
  311. '    ClearCopyList
  312.  
  313. 'END SUB
  314.  
  315.  
  316.  
  317.  
  318. '**
  319. '** Purpose:
  320. '**     Appends a file name to the end of a directory path,
  321. '**     inserting a backslash character as needed.
  322. '** Arguments:
  323. '**     szDir$  - full directory path (with optional ending "\")
  324. '**     szFile$ - filename to append to directory
  325. '** Returns:
  326. '**     Resulting fully qualified path name.
  327. '*************************************************************************
  328. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  329.     IF szDir$ = "" THEN
  330.         MakePath = szFile$
  331.     ELSEIF szFile$ = "" THEN
  332.         MakePath = szDir$
  333.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  334.         MakePath = szDir$ + szFile$
  335.     ELSE
  336.         MakePath = szDir$ + "\" + szFile$
  337.     END IF
  338. END FUNCTION
  339.  
  340.  
  341.