home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 April (Special) / Chip-Special_1997-04_cd.bin / microtek / pw104a / pw104a_1.exe / DISK-1.EXE / SETUP.MS_ / SETUP.MS
Encoding:
Text File  |  1996-01-24  |  8.5 KB  |  280 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 NOSPACE       = 1300
  17. CONST GHOST         = 3000
  18. CONST BADPATH       = 6400
  19. CONST SPACENEED     = 3200000     
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL WINSYS$
  26. GLOBAL TWAIN$
  27. GLOBAL MIITWAIN$
  28. GLOBAL INIPATH$     ''windows directory
  29. GLOBAL RebootMsg%
  30.  
  31. DECLARE SUB Install
  32. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  33.  
  34. DECLARE FUNCTION PostMessage LIB "user" (hwnd%, msg%, wparam%, lparam&) AS INTEGER
  35. DECLARE FUNCTION RegisterWindowMessage LIB "user" (szRebootMessage$) AS INTEGER
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO
  42.     SetTitle "PageWiz Software Installation"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     DEST$ = "C:\PAGEWIZ"                                        
  51.  
  52. '***************************************************************
  53. '**  Here we go registering the message so we can communicate
  54. '**  with NSETUP.EXE.
  55. '***************************************************************
  56.     RebootMsg% = RegisterWindowMessage ("NSetup")
  57.  
  58. '$IFDEF DEBUG
  59.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  60.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  61.     IF IsDriveValid(WinDrive$) = 0 THEN
  62.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  63.         GOTO QUIT
  64.     END IF
  65. '$ENDIF ''DEBUG
  66.  
  67.  
  68. WELCOME:
  69.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  70.     IF sz$ = "CONTINUE" THEN
  71.         UIPop 1
  72.     ELSE
  73.         GOSUB ASKQUIT
  74.         GOTO WELCOME
  75.     END IF
  76.  
  77.  
  78. GETPATH:
  79.     SetSymbolValue "EditTextIn", DEST$
  80.     SetSymbolValue "EditFocus", "END"
  81. GETPATHL1:
  82.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  83.     DEST$ = GetSymbolValue("EditTextOut")
  84.  
  85.     IF sz$ = "CONTINUE" THEN
  86.         IF IsDirWritable(DEST$) = 0 THEN
  87.             GOSUB BADPATH
  88.             GOTO GETPATHL1
  89.         END IF
  90.         UIPop 1
  91.     ELSEIF sz$ = "REACTIVATE" THEN
  92.         GOTO GETPATHL1
  93.     ELSEIF sz$ = "BACK" THEN
  94.         UIPop 1
  95.         GOTO WELCOME
  96.     ELSE
  97.         GOSUB ASKQUIT
  98.         GOTO GETPATH
  99.     END IF
  100.  
  101. CHECKSPACE:
  102.     drive$ = MID$(DEST$, 1, 1)
  103.     free& = GetFreeSpaceForDrive(drive$)
  104.     IF free& < SPACENEED THEN
  105.         GOSUB NOSPACE
  106.         GOTO GETPATH
  107.     ENDIF
  108.  
  109.     Install     
  110.  
  111.     SetSymbolValue "EditTextIn", DEST$           
  112. INSTALLSAMPLE:
  113. ''    sz$ = UIStartDlg(CUIDLL$, GHOST, "ChkAlbum", APPHELP, HELPPROC$)
  114. '   IF sz$ = "CONTINUE" THEN
  115. ''        UIPop 1
  116. '   ELSE
  117. '       GOSUB ASKQUIT
  118. '       GOTO INSTALLSAMPLE
  119. '   END IF
  120.                
  121.  
  122. QUIT:
  123.     ON ERROR GOTO ERRQUIT
  124.  
  125.     IF ERR = 0 THEN
  126.         sz$ = UIStartDlg(CUIDLL$, EXITSUCCESS, "SuccessDlgProc", 0, "")
  127.     ELSE
  128.         sz$ = UIStartDlg(CUIDLL$, EXITQUIT, "ExitDlgProc", 0, "")
  129.     END IF
  130.  
  131. QUITL1:
  132.     IF sz$ = "REACTIVATE" THEN
  133.         GOTO QUITL1
  134.     ELSEIF sz$ = "REBOOT" THEN
  135.       j% = PostMessage (65535, RebootMsg%, 0, 0)
  136.     END IF
  137.     UIPop 1
  138.  
  139.     END
  140.  
  141. ERRQUIT:
  142.     i% = DoMsgBox("Setup sources were corrupted, call Microtek Customer Service Department.", "FILE ERROR", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  143.     END
  144.  
  145.  
  146.  
  147. BADPATH:
  148.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "ExitDlgProc", 0, "")
  149.     IF sz$ = "REACTIVATE" THEN
  150.         GOTO BADPATH
  151.     END IF
  152.     UIPop 1
  153.     RETURN
  154.  
  155.  
  156. NOSPACE:
  157.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "ExitDlgProc", 0, "")
  158.     IF sz$ = "REACTIVATE" THEN
  159.         GOTO NOSPACE
  160.     ENDIF     
  161.     UIPop 1
  162.     RETURN 
  163.  
  164.  
  165. ASKQUIT:
  166.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  167.  
  168.     IF sz$ = "EXIT" THEN
  169.         UIPopAll
  170.         ERROR STFQUIT
  171.     ELSEIF sz$ = "REACTIVATE" THEN
  172.         GOTO ASKQUIT
  173.     ELSE
  174.         UIPop 1
  175.     END IF
  176.     RETURN
  177.  
  178.  
  179.  
  180. '**
  181. '** Purpose:
  182. '**     Builds the copy list and performs all installation operations.
  183. '** Arguments:
  184. '**     none.
  185. '** Returns:
  186. '**     none.
  187. '*************************************************************************
  188. SUB Install STATIC
  189.  
  190.     INIPATH$ = GetWindowsDir()
  191.     WINSYS$ = MakePath(INIPATH$, "system")
  192.     MIITWAIN$ = MakePath(INIPATH$, "TWAIN\PAGEWIZ")
  193.     MIIQP$ = MakePath(INIPATH$, "TWAIN\MICROTEK")
  194.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  195.  
  196.     AddSectionFilesToCopyList "TWAIN", SrcDir$, INIPATH$
  197. '    AddSectionFilesToCopyList "WIN", SrcDir$, INIPATH$
  198.     AddSectionFilesToCopyList "MIITW", SrcDir$, MIITWAIN$
  199.     AddSectionFilesToCopyList "SYSTEM", SrcDir$, WINSYS$
  200.     AddSectionFilesToCopyList "QP", SrcDir$, MIIQP$
  201.     AddSectionFilesToCopyList "MII", SrcDir$, MIIQP$
  202.     AddSectionFilesToCopyList "MII", SrcDir$, DEST$
  203.     AddSectionFilesToCopyList "FILES", SrcDir$, DEST$
  204.  
  205.     CopyFilesInCopyList
  206.  
  207.     CreateDir MakePath(DEST$, "data"), cmoNone                   
  208. '**Set autoloading the ctrl.exe***
  209.     szAutoLoad$ = GetIniKeyString( "WIN.INI", "windows", "load")
  210.     szCtler$ = MakePath(MIITWAIN$, "ctler.exe")
  211.     Count% = 1
  212.     Find% = 0
  213. CHECKCTRL:
  214.     szField$ = GetNthStringFromIniString( szAutoLoad$, " ", Count%)
  215.     IF szField$ = szCtler$ THEN
  216.         Find% = 1
  217.     ELSEIF szField$ <> "" THEN
  218.         Count% = Count% + 1
  219.         GOTO CHECKCTRL
  220.     END IF
  221.     IF Find% = 0 THEN
  222.         szAutoLoad$ = szCtler$ + " " + szAutoLoad$
  223.     END IF
  224.     RemoveIniKey "WIN.INI", "windows", "load", cmoOverwrite
  225.     CreateIniKeyValue "WIN.INI", "windows", "load", szAutoLoad$, cmoOverwrite
  226.  
  227. '**Add *.mii association application
  228.     CreateIniKeyValue "WIN.INI", "Extensions", "mii", MakePath(DEST$, "dp.exe ^.mii"), cmoOverwrite
  229.  
  230. '**Change Default Source to PAGEWIZ.DS**
  231.     RemoveIniKey "WIN.INI", "TWAIN", "Default Source", cmoOverwrite
  232.     CreateIniKeyValue "WIN.INI", "TWAIN", "Default Source", MakePath(MIITWAIN$, "pagewiz.ds"), cmoOverwrite
  233.  
  234.     RemoveIniKey "WIN.INI", "PageWiz", "Program", cmoOverwrite
  235.     CreateIniKeyValue "WIN.INI", "PageWiz", "Program", MakePath(DEST$, "pagesuit.exe"), cmoOverwrite
  236.  
  237.     RemoveFile MakePath(INIPATH$,"PAGESUIT.INI"), cmoForce
  238.     CreateIniKeyValue MakePath(INIPATH$,"PAGESUIT.INI"), "Path", "WorkPath", DEST$, cmoOverwrite
  239.     CreateIniKeyValue MakePath(INIPATH$,"PAGESUIT.INI"), "Path", "DataPath", MakePath(DEST$, "data"), cOverwrite
  240.     CreateIniKeyValue MakePath(INIPATH$,"PAGESUIT.INI"), "Preference", "General", "2", cOverwrite
  241.  
  242.  
  243.     CreateProgmanGroup "Microtek PageWiz", "", cmoNone
  244.     ShowProgmanGroup  "Microtek PageWiz", 1, cmoNone
  245.     CreateProgmanItem "Microtek PageWiz", "Technical Support", MakePath(DEST$,"tech.txt"), "", cmoOverwrite
  246.     CreateProgmanItem "Microtek PageWiz", "General Troubleshooting", MakePath(DEST$,"trouble.txt"), "", cmoOverwrite
  247.     CreateProgmanItem "Microtek PageWiz", "OCR/FAX Troubleshooting", MakePath(DEST$,"ocr_fax.txt"), "", cmoOverwrite
  248.     CreateProgmanItem "Microtek PageWiz", "Printer Troubleshooting", MakePath(DEST$,"printers.txt"), "", cmoOverwrite
  249.     CreateProgmanItem "Microtek PageWiz", "Microtek PageSuite", MakePath(DEST$,"pagesuit.exe"), "", cmoOverwrite
  250.     CreateProgmanItem "Microtek PageWiz", "Microtek QuickPanel", MakePath(MIIQP$,"qp.exe"), "", cmoOverwrite
  251.     CreateProgmanItem "Microtek PageWiz", "Microtek PageWiz Uninstall", MakePath(DEST$,"uninstal.exe"), "", cmoOverwrite
  252.  
  253. END SUB
  254.  
  255.  
  256.  
  257. '**
  258. '** Purpose:
  259. '**     Appends a file name to the end of a directory path,
  260. '**     inserting a backslash character as needed.
  261. '** Arguments:
  262. '**     szDir$  - full directory path (with optional ending "\")
  263. '**     szFile$ - filename to append to directory
  264. '** Returns:
  265. '**     Resulting fully qualified path name.
  266. '*************************************************************************
  267. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  268.     IF szDir$ = "" THEN
  269.         MakePath = szFile$
  270.     ELSEIF szFile$ = "" THEN
  271.         MakePath = szDir$
  272.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  273.         MakePath = szDir$ + szFile$
  274.     ELSE
  275.         MakePath = szDir$ + "\" + szFile$
  276.     END IF
  277. END FUNCTION
  278.  
  279.  
  280.