home *** CD-ROM | disk | FTP | other *** search
/ On Hand / On_Hand_From_Softbank_1994_Release_2_Disc_1_1994.iso / 00203 / s / eken.ms_ / eken.bin
Text File  |  1994-01-28  |  11KB  |  372 lines

  1. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. '                       EasyKeys installation script
  3. '                       Modified from Setup Toolkit's SAMPLE1.MST
  4. '                           by David Rosenbaum
  5. '
  6. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  7.  
  8. '''''$DEFINE DEBUG  ''Define for script development/debugging
  9.  
  10. '$INCLUDE 'setupapi.inc'
  11. '$INCLUDE 'msdetect.inc'
  12.  
  13. '
  14. ' Dialog ID's
  15. '
  16. CONST ASKQUIT = 200
  17. CONST BADWINVERSION = 1000
  18. CONST CONFIRMREGISTRATIONINFO = 7300
  19. CONST EXITFAILURE = 400
  20. CONST EXITSUCCESS = 700
  21. CONST EXITQUIT = 600
  22. CONST GETDESTPATH = 300
  23. CONST GETREGISTRATIONINFO = 7801
  24. CONST NONAME = 7805
  25. CONST NOTENOUGHROOM = 1100
  26. CONST UNWRITABLEDESTDIR = 7804
  27.  
  28. '
  29. ' Bitmap ID
  30. '
  31. CONST LOGO = 1
  32.  
  33. '
  34. ' From windows.h:
  35. '
  36. CONST WS_VISIBLE=&H10000000
  37. CONST WS_BORDER =&H00800000
  38. CONST WS_CLIPCHILDREN =&H02000000
  39. CONST GWL_STYLE =-16
  40. CONST SW_SHOWMAXIMIZED=3
  41.  
  42. '
  43. ' Forward declarations
  44. '
  45. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  46.  
  47. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  48. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  49.  
  50. DECLARE SUB munge LIB "mscuistf.dll" ( sz$ )
  51. DECLARE FUNCTION getnamesernum LIB "mscuistf.dll" ( libName$, custName$, serNum$ ) AS INTEGER
  52. DECLARE FUNCTION stringtoboolean2 LIB "mscuistf.dll" ( sz$ ) AS INTEGER
  53. DECLARE FUNCTION stringtoboolean1 LIB "mscuistf.dll" ( sz$ ) AS INTEGER
  54.  
  55. '
  56. ' Execution "starts" here
  57. '
  58. INIT:
  59.     ' Maximize the window
  60.     hWnd%=HwndFrame()
  61.     l&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  62.     i%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  63.  
  64.     _cuiDLL$ = "mscuistf.dll"            ''Custom user interface dll
  65.  
  66.     SetBitmap _cuiDLL$, LOGO
  67.     SetTitle "EasyKeys Setup"
  68.  
  69.     prev% = ShowWaitCursor()
  70.  
  71.     infFile$ = GetSymbolValue("STF_SRCINFPATH")
  72.     IF infFile$ = "" THEN
  73.         infFile$ = GetSymbolValue("STF_CWDDIR") + "EKEN.INF"
  74.     END IF
  75.     ReadInfFile infFile$
  76.  
  77.     _srcDir$ = GetSymbolValue("STF_SRCDIR")
  78.     winDrive$ = MID$(GetWindowsDir, 1, 1)
  79.     _destDir$ = winDrive$ + ":\EASYKEYS"
  80.  
  81.     _extraCosts$ = "ExtraCosts"
  82.     FOR i% = 1 TO 26 STEP 1
  83.         AddListItem _extraCosts$, "0"
  84.     NEXT i%
  85.     ''Add extra cost to Windows drive for ini/progman, etc.
  86.     drive% = ASC(ucase$(winDrive$)) - ASC("A") + 1
  87.     ReplaceListItem _extraCosts$, drive%, "10240"
  88.  
  89.  
  90. CHECKWINVERSION:
  91.     _majorVersion% = GetWindowsMajorVersion()
  92.     _minorVersion% = GetWindowsMinorVersion()
  93.  
  94. '$IFDEF DEBUG
  95.     _majorVersion = 3
  96.     _minorVersion = 0
  97. '$ENDIF ''DEBUG
  98.  
  99.     RestoreCursor prev%
  100.  
  101.     IF _majorVersion < 3 OR (_majorVersion = 3 AND _minorVersion < 1) THEN
  102.         GOSUB BADWINVERSION
  103.     END IF
  104.  
  105.  
  106. GETPATHINIT:
  107.     SetSymbolValue "EditTextIn", _destDir$
  108.     SetSymbolValue "EditFocus", "END"
  109. GETPATH:
  110.     ret$ = UIStartDlg( _cuiDLL$, GETDESTPATH, "FEditDlgProc", 0, "" )
  111.     _destDir$ = GetSymbolValue("EditTextOut")
  112.     IF ret$ = "CONTINUE" THEN
  113.         UIPop 1
  114.         prev% = ShowWaitCursor()
  115.         i% = IsDirWritable( _destDir$ )
  116.         RestoreCursor prev%
  117.         IF i% = 0 THEN
  118.             GOSUB UNWRITABLEDESTDIR
  119.             GOTO GETPATH
  120.         END IF
  121.     ELSEIF ret$ = "REACTIVATE" THEN
  122.         GOTO GETPATH
  123.     ELSE
  124.         UIPop 1
  125.         GOSUB ASKQUIT
  126.         GOTO GETPATHINIT
  127.     END IF
  128.  
  129.  
  130. CHECKSIZE:
  131.     prev% = ShowWaitCursor()
  132.     ClearCopyList
  133.     AddSectionFilesToCopyList "Files", _srcDir$, _destDir$
  134.     DestDrive$ = MID$( _destDir$, 1, 1 )
  135.     drive% = ASC( ucase$( DestDrive$ ) ) - ASC( "A" ) + 1
  136.     ''Add extra cost to destination drive for LOGFILE.OUT
  137.     ReplaceListItem _extraCosts$, drive%, "10240"
  138.     _stillNeed& = GetCopyListCost( _extraCosts$, "", "" )
  139.     RestoreCursor prev%
  140.     IF _stillNeed& > 0 THEN
  141.         GOSUB NOTENOUGHROOM
  142.         ReplaceListItem _extraCosts$, drive%, "0"
  143.         GOTO GETPATH
  144.     END IF
  145.  
  146.  
  147. GETREGISTRATIONINFOINIT:
  148.     prev% = ShowWaitCursor()
  149.     fileName$ = GetSectionKeyFilename( "Files", "EKMIDI_DLL" )
  150.     pathName$ = MakePath( _srcDir$, fileName$ )
  151.     custName$ = STRING$( 40, "x" )
  152.     serNum$ = STRING$( 20, "x" )
  153.     i% = getnamesernum( pathName$, custName$, serNum$ )
  154.     'j% = DoMsgBox( custName$ + serNum$, pathName$ + STR$( i% ), MB_TASKMODAL+MB_ICONHAND+MB_OK )
  155.     RestoreCursor prev%
  156.  
  157. '$IFNDEF DEBUG
  158.     if stringtoboolean2( serNum$ ) = 0 THEN
  159.         GOTO INSTALL
  160.     END IF
  161. '$ENDIF
  162.  
  163.     SetSymbolValue "NameIn", ""
  164.     SetSymbolValue "SerNumIn", ""
  165.     SetSymbolValue "CurrentControl", "NAME"
  166.  
  167. GETREGISTRATIONINFO:
  168.     ret$ = UIStartDlg(_cuiDLL$, GETREGISTRATIONINFO, "FNameSerNumDlgProc", 0, "")
  169.     UIPop 1
  170.     IF ret$ <> "CONTINUE" THEN
  171.         GOSUB ASKQUIT             
  172.         GOTO GETREGISTRATIONINFO
  173.     END IF
  174.     _custNameOut$ = GetSymbolValue( "NameOut" )
  175.     '_serNumOut$ = GetSymbolValue( "SerNumOut" )
  176.     _serNumOut$ = GetIniKeyString( MakePath( GetSymbolValue("STF_CWDDIR"), "MSVVER.INI" ), "About", "sn" )
  177.     SetSymbolValue "NameIn", _custNameOut$
  178.     SetSymbolValue "SerNumIn", _serNumOut$
  179.  
  180.     IF LEN( _custNameOut$ ) <= 0 THEN
  181.         ret$ = UIStartDlg( _cuiDLL$, NONAME, "FInfo0DlgProc", 0, "" )
  182.         UIPop 1
  183.         SetSymbolValue "CurrentControl", "NAME"
  184.         GOTO GETREGISTRATIONINFO
  185.     END IF
  186.  
  187.  
  188. CONFIRMREGISTRATIONINFOINIT:
  189.     AddListItem "ConfirmTextIn", ""  
  190.     AddListItem "ConfirmTextIn", ""  
  191.     AddListItem "ConfirmTextIn", ""  
  192.     ReplaceListItem "ConfirmTextIn", 1, _custNameOut$
  193.     ReplaceListItem "ConfirmTextIn", 2, _serNumOut$
  194. CONFIRMREGISTRATIONINFO:
  195.     ret$ = UIStartDlg( _cuiDLL$, CONFIRMREGISTRATIONINFO, "FConfirmDlgProc", 0, "" )
  196.     IF ret$ = "CONTINUE" THEN
  197.         UIPop 1
  198.     ELSEIF ret$ = "REACTIVATE" THEN        
  199.         GOTO CONFIRMREGISTRATIONINFOINIT
  200.     ELSEIF ret$ = "BACK" THEN
  201.         UIPop 1
  202.         GOTO GETREGISTRATIONINFO
  203.     ELSE
  204.         UIPop 1
  205.         GOSUB ASKQUIT
  206.         GOTO CONFIRMREGISTRATIONINFOINIT
  207.     END IF
  208.     
  209.  
  210. INSTALL:
  211.     prev% = ShowWaitCursor()
  212.     CreateDir _destDir$, cmoNone
  213.     OpenLogFile MakePath(_destDir$, "LOGFILE.OUT"), 0
  214.     WriteToLogFile ""
  215.     WriteToLogFile "  User chose as destination directory: '" + _destDir$ + "'"
  216.     WriteToLogFile ""
  217.     WriteToLogFile "  May have had to create the directory: " + _destDir$
  218.     WriteToLogFile ""
  219.  
  220. '$IFDEF DEBUG
  221.     i% = SetCopyMode( 0 )
  222.     i% = SetSizeCheckMode( scmOnIgnore )  '' could use scmOff; def = scmOnFatal
  223. '$ENDIF ''DEBUG
  224.  
  225.     RestoreCursor prev%
  226.  
  227. '$IFNDEF DEBUG
  228.     CopyFilesInCopyList
  229. '$ENDIF ''DEBUG
  230.  
  231.     munge _custNameOut$
  232.     munge _serNumOut$
  233.     stamp$=CHR$(LEN(_custNameOut$))+_custNameOut$+CHR$(LEN(_serNumOut$))+_serNumOut$
  234.     prev% = ShowWaitCursor()
  235.     StampResource "Files", "EKMIDI_DLL", _destDir$, 6, &H272, stamp$, LEN(stamp$)
  236.     RestoreCursor prev%
  237.  
  238.     progName$ = "EasyKeys"
  239.     pathName$ = MakePath( _destDir$, "EASYKEYS.EXE") 
  240.  
  241. '$IFNDEF DEBUG
  242.     CreateProgmanGroup progName$, "", cmoNone
  243.     ShowProgmanGroup  progName$, 1, cmoNone
  244.     CreateProgmanItem progName$, progName$, pathName$, "", cmoOverwrite
  245.  
  246.     CreateIniKeyValue "win.ini", "Extensions", "jbx", pathName$ + " ^.jbx", cmoOverWrite
  247. '$ENDIF ''DEBUG
  248.  
  249.     CloseLogFile
  250.  
  251.  
  252. '
  253. ' This is the ON ERROR target for everything else
  254. '
  255. QUIT:
  256.     ON ERROR GOTO ERRQUIT
  257.  
  258.     IF ERR = 0 THEN
  259.         dlg% = EXITSUCCESS
  260.     ELSEIF ERR = STFQUIT THEN
  261.         dlg% = EXITQUIT
  262.     ELSE
  263.         dlg% = EXITFAILURE
  264.     END IF
  265. QUITL1:
  266.     ret$ = UIStartDlg(_cuiDLL$, dlg%, "FInfo0DlgProc", 0, "")
  267.     IF ret$ = "REACTIVATE" THEN
  268.         GOTO QUITL1
  269.     END IF
  270.     UIPop 1
  271.  
  272.     END
  273.  
  274.  
  275. ERRQUIT:
  276.     i% = DoMsgBox("Setup sources were corrupted.  Please call Blue Ribbon Technical Support at (404)315-0212", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  277.     END
  278.  
  279.  
  280. BADWINVERSION:
  281.     'i% = DoMsgBox( "You seem to be running Windows" + STR$( _majorVersion ) + "." + LTRIM$( STR$( _minorVersion ) ) + ".  EasyKeys requires Windows 3.1 or above.", "Required Windows Version", MB_TASKMODAL+MB_ICONHAND+MB_OK )
  282.     ret$ = UIStartDlg( _cuiDLL$, BADWINVERSION, "FQuitDlgProc", 0, "" )
  283.     IF ret$ = "EXIT" THEN
  284.         UIPop 1
  285.         ERROR STFQUIT
  286.     ELSEIF ret$ = "REACTIVATE" THEN
  287.         GOTO BADWINVERSION
  288.     ELSE
  289.         UIPop 1
  290.     END IF
  291.     RETURN
  292.  
  293.  
  294. UNWRITABLEDESTDIR:
  295.     ret$ = UIStartDlg(_cuiDLL$, UNWRITABLEDESTDIR, "FQuitDlgProc", 0, "")
  296.     IF ret$ = "EXIT" THEN
  297.         UIPop 1
  298.         ERROR STFQUIT
  299.     ELSEIF ret$ = "REACTIVATE" THEN
  300.         GOTO UNWRITABLEDESTDIR
  301.     ELSE
  302.         UIPop 1
  303.     END IF
  304.     RETURN
  305.  
  306.                                                             
  307. NOTENOUGHROOM:
  308.     SetSymbolValue "KStillNeeded", STR$( _stillNeed& / 1024 )
  309.     ret$ = UIStartDlg( _cuiDLL$, NOTENOUGHROOM, "FNotEnoughRoomDlgProc", 0, "" )
  310.     IF ret$ = "EXIT" THEN
  311.         UIPop 1
  312.         ERROR STFQUIT
  313.     ELSEIF ret$ = "REACTIVATE" THEN
  314.         GOTO NOTENOUGHROOM
  315.     ELSE
  316.         UIPop 1
  317.     END IF
  318.     RETURN
  319.  
  320.  
  321. UNWRITABLESRCDIR:
  322.     ret$ = UIStartDlg( _cuiDLL$, UNWRITABLESRCDIR, "FQuitDlgProc", 0, "" )
  323.     IF ret$ = "EXIT" THEN
  324.         UIPop 1
  325.         ERROR STFQUIT
  326.     ELSEIF ret$ = "REACTIVATE" THEN
  327.         GOTO UNWRITABLESRCDIR
  328.     ELSE
  329.         UIPop 1
  330.     END IF
  331.     RETURN
  332.  
  333.  
  334. ASKQUIT:
  335.     ret$ = UIStartDlg(_cuiDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  336.  
  337.     IF ret$ = "EXIT" THEN
  338.         UIPop 1
  339.         ERROR STFQUIT
  340.     ELSEIF ret$ = "REACTIVATE" THEN
  341.         GOTO ASKQUIT
  342.     ELSE
  343.         UIPop 1
  344.     END IF
  345.     RETURN
  346.  
  347.  
  348. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  349. ' FUNCTION MakePath
  350. '
  351. ' Purpose:
  352. '     Appends a file name to the end of a directory path,
  353. '     inserting a backslash character as needed.
  354. ' Arguments:
  355. '     pathName$ - full directory path (with optional ending "\")
  356. '     fileName$ - file name to append to directory
  357. ' Returns:
  358. '     Resulting fully qualified path name.
  359. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  360.  
  361. FUNCTION MakePath (pathName$, fileName$) STATIC AS STRING
  362.     IF pathName$ = "" THEN
  363.         MakePath = fileName$
  364.     ELSEIF fileName$ = "" THEN
  365.         MakePath = pathName$
  366.     ELSEIF MID$(pathName$, LEN(pathName$), 1) = "\" THEN
  367.         MakePath = pathName$ + fileName$
  368.     ELSE
  369.         MakePath = pathName$ + "\" + fileName$
  370.     END IF
  371. END FUNCTION
  372.