home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 July / VPR9607B.BIN / driver / wacom / tddv224j / setup / wacomnt.ms_ / wacomnt.ms
Text File  |  1995-10-17  |  25KB  |  611 lines

  1. '*******************
  2. '*   WACOM SETUP   *
  3. '*******************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7.  
  8. CONST WELCOME31     = 100
  9. CONST WELCOME95     = 101
  10. CONST WELCOMENT     = 102
  11. CONST PLSWAIT       = 110
  12. CONST ASKQUIT       = 200
  13. CONST EXITFAILURE   = 400
  14. CONST EXITQUIT      = 600
  15. CONST EXITSUCCESS   = 700
  16. CONST OPTIONS       = 800
  17. CONST APPHELP       = 900
  18. CONST COMHELP       = 1100
  19. CONST TABHELP       = 1300
  20. CONST WAC           = 1400
  21. CONST NOWAC         = 1500
  22. CONST WAHELP        = 1600
  23. CONST NWHELP        = 1700
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. GLOBAL ILST$        ''Device driver list.
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31. GLOBAL WINDIR$      ''Windows drive letter.
  32. GLOBAL CUIDLL$      ''Dll for the dailog boxes
  33. GLOBAL PLST$        ''Serial port list
  34.  
  35. GLOBAL MODE%        ''Windows operating mode.
  36. GLOBAL mj%          ''Windows major revision
  37. GLOBAL mn%          ''Windows minor revision
  38. GLOBAL ReMove%      ''Remove the Driver?
  39.  
  40. DECLARE SUB Install
  41.  
  42. INIT:
  43.     ReMove% = 0
  44.     OpenLogFile GetWindowsDir + "WACOM.LOG", 0
  45.     CUIDLL$ = "mscuistf.dll"
  46.     HELPPROC$ = "FHelpDlgProc"
  47.     ILST$ = "DeviceList"
  48.     PLST$ = "PortList"
  49.     SetBitmap CUIDLL$, LOGO
  50.     SetTitle "WACOM セットアップ"
  51.     WINDIR$ = GetWindowsDir
  52.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  53.     IF szInf$ = "" THEN
  54.         szInf$ = GetSymbolValue("STF_CWDDIR") + "WACOM.INF"
  55.     END IF
  56.     ReadInfFile szInf$
  57.     OPTCUR$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "Pen Driver", "ComPort")
  58.     mj% = GetWindowsMajorVersion()
  59.     mn% = GetWindowsMinorVersion()
  60.     MODE% = GetWindowsMode()
  61.     WriteToLogFile "^ Version " + STR$(mj%) + "." + STR$(mn%) + ". Mode " + STR$(MODE%)
  62.  
  63.     IF ((mj% < 3) OR ((mj% = 3) AND (mn% < 1))) THEN
  64.         WriteToLogFile ": Not Windows 3.1 or greater"
  65.         i% = DoMsgBox("このタブレットドライバは Windows 3.1 以上のシステムで動作します。", "古いバージョンのWindowsです", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  66.         END
  67.     END IF
  68.  
  69. REWELCOME:
  70.     IF MODE% = 4 THEN
  71.         WriteToLogFile "^ Windows NT system found"
  72.         WriteToLogFile "^ Check for administrator"
  73.         fu% = WinExec("SETREG IsAdmin", SW_HIDE)
  74.         fu% = 100
  75.         i% = 0
  76.         WHILE (fu% > 1)
  77.             fu% = fu% - 1
  78.             i% = i% + 1
  79.             cb% = 16
  80.             szBuf$ = STRING$(cb%, 32)
  81.             cbRet% = GetPrivateProfileString("Admin", "NotAdmin", STR$(fu%), szBuf$, cb%, "wacom.ini")
  82.             fu% = VAL(szBuf$)
  83.         WEND
  84.         WriteToLogFile "^ Administrator info found; " + STR$(fu%) + ". Try #" + STR$(i%)
  85.         i% = WritePrivateProfileString("Admin",NULL,NULL,"wacom.ini")
  86.         IF (fu%) THEN
  87.             WriteToLogFile ": Not Administrator"
  88.             i% = DoMsgBox("アドミニストレータでログインし、再度セットアップを行ってください", "アクセスが拒否されました", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  89.             END
  90.         END IF
  91.         IF DoesDirExist(GetSymbolValue("STF_SRCDIR") + "Win\NT") THEN
  92.             WriteToLogFile "^ Install Windows NT"
  93.             sz$ = UIStartDlg(CUIDLL$, WELCOMENT, "FInfoDlgProc", APPHELP, HELPPROC$)
  94.         ELSE
  95.             WriteToLogFile ": Incorrect disk expansion"
  96.             i% = DoMsgBox("WACOMの Windows NT 用のファイルが見つかりません。READMEの指示に従ってください", "ファイルが見つかりません", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  97.             END
  98.         END IF
  99.     ELSEIF ((mj% = 3) AND (mn% < 50)) THEN
  100.         WriteToLogFile "^ Windows 3.1 system found"
  101.         IF DoesDirExist(GetSymbolValue("STF_SRCDIR") + "Win") THEN
  102.             WriteToLogFile "^ Install Windows 3.1"
  103.             sz$ = UIStartDlg(CUIDLL$, WELCOME31, "FInfoDlgProc", APPHELP, HELPPROC$)
  104.         ELSE
  105.             WriteToLogFile ": Incorrect disk expansion"
  106.             i% = DoMsgBox("WACOMの Windows 3.1 用のファイルが見つかりません。READMEの指示に従ってください", "ファイルが見つかりません", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  107.             END
  108.         END IF
  109.     ELSE
  110.         WriteToLogFile "^ Windows 95 system found"
  111.         IF DoesDirExist(GetSymbolValue("STF_SRCDIR") + "Win") THEN
  112.             WriteToLogFile "^ Install Windows 95"
  113.             sz$ = UIStartDlg(CUIDLL$, WELCOME95, "FInfoDlgProc", APPHELP, HELPPROC$)
  114.         ELSE
  115.             WriteToLogFile ": Incorrect disk expansion"
  116.             i% = DoMsgBox("WACOMの Windows 95 用のファイルが見つかりません。READMEの指示に従ってください", "ファイルが見つかりません", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  117.             END
  118.         END IF
  119.     END IF
  120.     IF sz$ = "CONTINUE" THEN
  121.         UIPop 1
  122.     ELSEIF sz$ = "UNINSTALL" THEN
  123.         WriteToLogFile "^ Remove procedure started"
  124.         ReMove% = 1
  125.     ELSE
  126.         GOSUB ASKQUIT
  127.         GOTO REWELCOME
  128.     END IF
  129.  
  130. ''    GetSerialPortsList PLST$
  131.  
  132.     WriteToLogFile "^ Check for pen driver"
  133.     bd1$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "drivers")
  134.     IF INSTR(UCASE$(bd1$), "PEN") THEN
  135.     pn1$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "drivers", "pen")
  136.     WriteToLogFile "^ PEN driver found - " + bd1$ + "=" + pn1$
  137.     IF INSTR(UCASE$(pn1$), "WAC") THEN
  138.         GOTO OK
  139.     ELSEIF INSTR(UCASE$(pn1$),"MSMOUS") THEN
  140.         GOTO OK
  141.     ELSE
  142. NONWAC:
  143.         WriteToLogFile "^ Do we overwrite the existing driver?"
  144.         sz$ = UIStartDlg(CUIDLL$, NOWAC, "FInfoDlgProc", NWHELP, HELPPROC$)
  145.         IF sz$ = "CONTINUE" THEN
  146.         WriteToLogFile "^ Yes."
  147.         UIPop 1
  148.         ELSE
  149.         WriteToLogFile "^ NO."
  150.         GOSUB ASKQUIT
  151.         GOTO NONWAC
  152.         END IF
  153.     END IF
  154.     ELSE
  155.     IF ReMove% = 1 THEN
  156.         WriteToLogFile ": Driver not installed so already Removed"
  157.         End
  158.     END IF
  159.     END IF
  160. OK:
  161.     Install
  162.  
  163. QUIT:
  164.     WriteToLogFile "^ Quit routine"
  165.     ON ERROR GOTO ERRQUIT
  166.     IF ReMove% = 1 THEN
  167.         WriteToLogFile ": Remove driver exit"
  168.         i% = DoMsgBox("ドライバを削除するために Windows をリスタートしてください", "WACOM セットアップ終了", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  169.         GOTO RESTART2
  170.     END IF
  171.     IF ERR = 0 THEN
  172.         WriteToLogFile "^ No Error"
  173.         dlg% = EXITSUCCESS
  174.     ELSEIF ERR = STFQUIT THEN
  175.         WriteToLogFile ": Error EXITQUIT"
  176.         dlg% = EXITQUIT
  177.     ELSE
  178.         WriteToLogFile ": Error EXITFAILURE"
  179.         i% = DoMsgBox("インストールに失敗しました", "エラー", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  180.         END
  181.     END IF
  182.  
  183. QUITL1:
  184.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  185.     IF sz$ = "REACTIVATE" THEN
  186.         GOTO QUITL1
  187.     END IF
  188.     UIPop 1
  189.     IF dlg% = EXITSUCCESS THEN
  190.         WriteToLogFile "EXITSUCCESS"
  191.         i% = ExitExecRestart()
  192.         WriteToLogFile "^ ExitExecRestart = " + STR$(i%)
  193.         IF i% = 0 THEN
  194.             i% = DoMsgBox("MS-DOSのアプリケーションを終了させて Windows を抜けます。そしてDOSプロンプトより _MSSETUP.BAT を実行させてください。", "終了処理に問題があります", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  195.         ELSEIF i% = 1 THEN
  196.             GOTO RESTART
  197.         END IF
  198.     END IF
  199.     END
  200.  
  201. ERRQUIT:
  202.     WriteToLogFile ": ONERROR QUIT"
  203.     i% = DoMsgBox("WACOM以外のペンドライバで問題があります", "WACOM セットアップ", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  204.     END
  205.  
  206. RESTART:
  207.     i% = DoMsgBox("ドライバをロードするために Windows をリスタートさせてください", "WACOM リスタート", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  208. RESTART2:
  209. ''  Restart computer
  210.     END
  211.  
  212. ASKQUIT:
  213.     WriteToLogFile "^ Ask to Quit"
  214.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  215.     IF sz$ = "EXIT" THEN
  216.         WriteToLogFile "^ User Quit"
  217.         UIPopAll
  218.         ERROR STFQUIT
  219.     ELSE
  220.         WriteToLogFile "^ Continue"
  221.         UIPop 1
  222.     END IF
  223.     RETURN
  224.  
  225.  
  226. '**
  227. '** Purpose:
  228. '**     Builds the copy list and performs all installation operations.
  229. '** Arguments:
  230. '**     none.
  231. '** Returns:
  232. '**     none.
  233. '*************************************************************************
  234. SUB Install STATIC
  235.     WriteToLogFile "^ Display wait message"
  236.     wt$ = UIStartDlg(CUIDLL$, PLSWAIT, "FModelessDlgProc", 0, "")
  237.     
  238.     SetRestartDir WINDIR$
  239.     SrcDrv$ = GetSymbolValue("STF_SRCDIR")
  240.     SrcDir$ = SrcDrv$ + "Win\"
  241.     DEST$ = GetWindowsDir
  242.     
  243.     IF MODE% = 4 THEN
  244.         WriteToLogFile "^ Add NT files to list"
  245.         AddSectionFilesToCopyList "Helps", SrcDir$, WINDIR$
  246.         AddSectionFilesToCopyList "NT_USR", SrcDir$ + "NT", WINDIR$ + "System32"
  247.         AddSectionFilesToCopyList "NT_KRNL", SrcDir$ + "NT", WINDIR$ +"System32\Drivers"
  248.         WriteToLogFile "^ Modify the registry"
  249.         fu% = WinExec("setreg", SW_HIDE)
  250.         GOTO DO_NT
  251.     END IF
  252.     
  253.     fu% = 0
  254. NEXTFILE:
  255.     IF fu% < 10 THEN
  256.         ext$ = "00" + LTRIM$(STR$(fu%))
  257.     ELSEIF fu% < 100 THEN
  258.         ext$ = "0" + LTRIM$(STR$(fu%))
  259.     ELSEIF fu% < 1000 THEN
  260.         ext$ = LTRIM$(STR$(fu%))
  261.     ELSE
  262.         WriteToLogFile "^ Can not create Backup file."
  263.         i% = DoMsgBox("SYSTEM.INI ファイルのバックアップが出来ませんでした。Windows ディレクトリから SYSWAC.??? ファイルを削除してください", "バックアップの失敗", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  264.     END IF
  265.     WriteToLogFile "^ Checking for " + WINDIR$ + "SYSWAC." + ext$
  266.     IF DoesFileExist(WINDIR$ + "SYSWAC." + ext$, femExists) THEN
  267.         fu% = fu% + 1
  268.         GOTO NEXTFILE
  269.     ELSE
  270.         WriteToLogFile "^ Copy the SYSTEM.INI to SYSWAC." + ext$
  271.         CopyFile WINDIR$ + "SYSTEM.INI", WINDIR$ + "SYSWAC." + ext$, cmoVital, 0
  272.     END IF
  273.  
  274.     IF ReMove% THEN
  275.         dblclk% = 0
  276.         wacp%   = 0
  277.         pend%   = 0
  278.         w386%   = 0
  279.         penw%   = 0
  280.     ELSE
  281.         dblclk% = 1
  282.         wacp%   = 2
  283.         pend%   = 1
  284.         w386%   = 1
  285.         penw%   = 0
  286.  
  287.         IF ((mj% = 3) AND (mn% < 50)) THEN
  288.             WriteToLogFile "^ Add windows 31 files to list"
  289.             DEST$ = GetWindowsSysDir
  290.             AddSectionFilesToCopyList "Helps", SrcDir$, WINDIR$
  291.             AddSectionFilesToCopyList "Common", SrcDir$, DEST$
  292.             AddSectionFilesToCopyList "Wintabs", SrcDir$, DEST$
  293.             AddSectionFilesToCopyList "Win31_Files", SrcDir$, DEST$
  294.             penw% = 2
  295.         ELSE
  296.             WriteToLogFile "^ Add windows 95 files to list"
  297.             DEST$ = GetWindowsSysDir
  298.             AddSectionFilesToCopyList "Helps", SrcDir$, WINDIR$
  299.             AddSectionFilesToCopyList "Common", SrcDir$, DEST$
  300.             AddSectionFilesToCopyList "Load_Save", SrcDir$, WINDIR$
  301.             AddSectionFilesToCopyList "Eraser", SrcDir$, WINDIR$
  302.             AddSectionFilesToCopyList "Wintabs", SrcDir$, DEST$
  303.             AddSectionFilesToCopyList "Win95_Files", SrcDir$, DEST$
  304.             WriteToLogFile "^ copy pen.inf"
  305.             CopyFile SrcDrv$ + "PEN.INF", WINDIR$ + "INF\PEN.INF", cmoOverwrite, 0
  306.             WriteToLogFile "Modify the registery"
  307.             fu% = WinExec("regedit /s wacom95.reg", SW_HIDE)
  308.             dblclk% = 0
  309.             pend% = 2
  310.             w386% = 3
  311.         END IF
  312.     END IF
  313.  
  314.     WriteToLogFile "^ dblclk = " + STR$(dblclk%)
  315.     WriteToLogFile "^ wacp   = " + STR$(wacp%)
  316.     WriteToLogFile "^ pend   = " + STR$(pend%)
  317.     WriteToLogFile "^ w386   = " + STR$(w386%)
  318.     WriteToLogFile "^ penw   = " + STR$(penw%)
  319.  
  320.     
  321.     IF dblclk% = 1 THEN
  322.         dist% = VAL(GetIniKeyString("WIN.INI", "windows", "DoubleClickWidth"))
  323.         WriteToLogFile "^ Old Double Click Width = " + STR$(dist%)
  324.         IF dist% < 9 THEN
  325.             WriteToLogFile "^ Set to 9"
  326.             CreateIniKeyValue "WIN.INI", "windows", "DoubleClickWidth", "9", cmoNone
  327.         END IF
  328.         dist% = VAL(GetIniKeyString("WIN.INI", "windows", "DoubleClickHeight"))
  329.         WriteToLogFile "^ Old Double Click Height = " + STR$(dist%)
  330.         IF dist% < 9 THEN
  331.             WriteToLogFile "^ Set to 9"
  332.             CreateIniKeyValue "WIN.INI", "windows", "DoubleClickHeight", "9", cmoNone
  333.         END IF
  334.     END IF
  335.  
  336.     mou$ = UCASE$(LTRIM$(RTRIM$(GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "mouse.drv"))))
  337.     IF mou$ = "WACPEN.DRV" THEN
  338.         mou$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", ";oldmouse")
  339.         WriteToLogFile "^ The ;oldmouse driver is " + mou$
  340.         IF mou$ <> "" THEN
  341.             IF DoesFileExist(WINDIR$ + "SYSTEM\" + mou$, femExists) THEN
  342.                 WriteToLogFile "^ Reset the MOUSE DRIVER to " + mou$
  343.                 CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", "mouse.drv", mou$, cmoOverwrite
  344.                 IF INSTR(UCASE$(LTRIM$(RTRIM$(mou$))),"OLDMOUSE.DRV") THEN
  345.                 ELSE
  346.                     WriteToLogFile "^ Remove Oldmouse.drv"
  347.                     RemoveFile WINDIR$ + "SYSTEM\OLDMOUSE.DRV", cmoForce
  348.                 END IF
  349.             END IF
  350.         ELSE
  351.             WriteToLogFile "^ Reset the MOUSE DRIVER to oldmouse.drv"
  352.             CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", "mouse.drv", "oldmouse.drv", cmoOverwrite
  353.             IF DoesFileExist(WINDIR$ + "SYSTEM\OLDMOUSE.DRV", femExists) THEN
  354.             ELSE
  355.                 WriteToLogFile "^ Add OLDMOUSE.DRV to file list"
  356.                 AddSectionFilesToCopyList "NoMouse", SrcDir$, Dest$
  357.             END IF
  358.         END IF
  359.     END IF
  360.     WriteToLogFile "^ Remove the ;oldmouse key"
  361.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "boot", ";oldmouse", cmoNone
  362.     mou$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot.description", "mouse.drv")
  363.     WriteToLogFile "^ The description of the mouse is " + mou$
  364.     IF MID$(UCASE$(mou$),1,29) = "WACOM PEN DRIVER SPOOLING TO " THEN
  365.         IF LEN(mou$) = 29 THEN
  366.             WriteToLogFile "^ Clear the description"
  367.             mou$ = ""
  368.         ELSE
  369.             WriteToLogFile "^ Remove 'WACOM pen driver spooling to'"
  370.             mou$ = MID$(mou$,30)
  371.         END IF
  372.         CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot.description", "mouse.drv", mou$, cmoOverwrite
  373.     END IF
  374.     IF wacp% > 0 THEN
  375.         mou$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "mouse.drv")
  376.         WriteToLogFile "^ The mouse driver is " + mou$
  377.         CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", ";oldmouse", mou$, cmoNone
  378.         WriteToLogFile "^ Set ;oldmouse to " + mou$
  379.         IF INSTR(mou$,"\") THEN
  380.             mouw$ = mou$
  381.             mous$ = mou$
  382.         ELSE
  383.             mouw$ = WINDIR$ + mou$
  384.             mous$ = WINDIR$ + "SYSTEM\" + mou$
  385.         END IF
  386.         IF INSTR(UCASE$(mou$),"WAC") THEN
  387.             WriteToLogFile "^ Mouse driver is WAC"
  388.             IF DoesFileExist(WINDIR$ + "SYSTEM\OLDMOUSE.DRV", femExists) THEN
  389.                 WriteToLogFile "^ OLDMOUSE.DRV already exists"
  390.             ELSE
  391.                 WriteToLogFile "^ Add OLDMOUSE.DRV to file list"
  392.                 AddSectionFilesToCopyList "NoMouse", SrcDir$, Dest$
  393.             END IF
  394.         ELSEIF DoesFileExist(WINDIR$ + "SYSTEM\OLDMOUSE.DRV", femExists) THEN
  395.             WriteToLogFile "^ OLDMOUSE.DRV exists"
  396.         ELSEIF DoesFileExist(mouw$, femExist) THEN
  397.             WriteToLogFile "^ Copy windows mouse.drv to oldmouse.drv"
  398.             CopyFile mouw$, WINDIR$ + "SYSTEM\OLDMOUSE.DRV", cmoVital, 0
  399.         ELSEIF DoesFileExist(mous$, femExists) THEN
  400.             WriteToLogFile "^ Copy windows system mouse.drv to oldmouse.drv"
  401.             CopyFile mous$, WINDIR$ + "SYSTEM\OLDMOUSE.DRV", cmoOverwrite + cmoVital, 0
  402.         END IF
  403.         IF wacp% = 1 THEN
  404.             WriteToLogFile "^ Set mouse driver to WACPEN.DRV"
  405.             CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", "mouse.drv", "wacpen.drv", cmoOverwrite
  406.             mou$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot.description", "mouse.drv")
  407.             WriteToLogFile "^ The description of the mouse is now " + mou$
  408.             CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot.description", "mouse.drv", "WACOM pen driver spooling to " + mou$, cmoOverwrite
  409.             WriteToLogFile "^ Add 'WACOM pen driver spooling to'"
  410.         END IF
  411.     END IF
  412.  
  413.     IF w386% = 1 THEN
  414.         WriteToLogFile "^ Add WACOM.386 to list"
  415.         AddListItem ILST$, "wacom.386"
  416.     ELSEIF w386% = 2 THEN
  417.         WriteToLogFile "^ Add WACOM.VXD to list"
  418.         AddListItem ILST$, "wacom.vxd"
  419.     END IF
  420. TOP:
  421.     FlushIniFile(WINDIR$ + "SYSTEM.INI")
  422.     ini$ = GetIniKeyString(WINDIR$ + "SYSTEM.INI", "386Enh", "device")
  423.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "386Enh", "device", cmoVital
  424.     WriteToLogFile "^ Device = " + ini$ + "; Removed"
  425.     IF INSTR(UCASE$(ini$), "WAC") THEN
  426.         WriteToLogFile "^ WAC driver found"
  427.         GOTO NEX
  428.     ELSEIF INSTR(UCASE$(ini$), "VPEN") THEN
  429.         WriteToLogFile "^ VPEN driver found"
  430.         GOTO NEX
  431.     ELSEIF ini$ = "" THEN
  432.         WriteToLogFile "^ Last driver found"
  433.         GOTO NEX
  434.     ELSE
  435.         AddListItem ILST$, ini$
  436.         GOTO TOP
  437.     END IF
  438. NEX:
  439.     x% = GetListLength(ILST$)
  440.     WriteToLogFile "^ There are " + STR$(x%) + " drivers in the list"
  441.     FOR i% = x% TO 1 STEP -1
  442.         FlushIniFile(WINDIR$ + "SYSTEM.INI")
  443.         ini$ = GetListItem(ILST$, i%)
  444.         CreateSysIniKeyValue WINDIR$ + "SYSTEM.INI", "386Enh", "device", ini$, cmoVital
  445.         WriteToLogFile "^ " + ini$ + " put back; " + GetIniKeyString(WINDIR$ + "SYSTEM.INI", "386Enh", "device") + " written"
  446.     NEXT i%
  447.  
  448.     bd1$ = LTRIM$(RTRIM$(GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "drivers")))
  449.     WriteToLogFile "^ drivers = " + bd1$
  450.     IF LEN(bd1$) > 2 THEN
  451.         ps% = INSTR(UCASE$(bd1$)," PEN ")
  452.         IF INSTR(LEN(bd1$)-2,UCASE$(bd1$),"PEN") THEN
  453.             WriteToLogFile "^ PEN found at the end"
  454.             IF LEN(bd1$) = 3 THEN
  455.                 WriteToLogFile "^ Clear the drivers line"
  456.                 bdt$ = ""
  457.                 bd1$ = ""
  458.             ELSEIF MID$(bd1$,LEN(bd1$)-3,1) = " " THEN
  459.                 WriteToLogFile "^ Remove PEN from the line"
  460.                 bdt$ = MID$(bd1$,1,LEN(bd1$) - 4)
  461.                 bd1$ = LTRIM$(RTRIM$(bdt$))
  462.             END IF
  463.         ELSEIF MID$(UCASE$(bd1$),1,4) = "PEN " THEN
  464.             WriteToLogFile "^ PEN found in the beginning"
  465.             WriteToLogFile "^ Remove PEN from the line"
  466.             bdt$ = MID$(bd1$,5)
  467.             bd1$ = LTRIM$(RTRIM$(bdt$))
  468.         ELSEIF ps% THEN
  469.             WriteToLogFile "^ PEN found in the line; @ " + STR$(ps%)
  470.             WriteToLogFile "^ Remove PEN from line"
  471.             bdt$ = MID$(bd1$,1,ps% - 1) + MID$(bd1$,ps% + 4)
  472.             bd1$ = LTRIM$(RTRIM$(bdt$))
  473.         END IF
  474.         WriteToLogFile "^ New drivers line is " + bd1$
  475.         CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", "drivers", bd1$, cmoOverwrite
  476.         FlushIniFile(WINDIR$ + "SYSTEM.INI")
  477.     END IF
  478.     WriteToLogFile "^ Remove PEN= line from drivers section"
  479.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "drivers", "pen", cmoNone
  480.     WriteToLogFile "^ Remove PEN.DRV= from descriptions"
  481.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "boot.description", "pen.drv", cmoNone
  482.     IF pend% > 0 THEN
  483.         IF pend% < 2 THEN
  484.             bd1$ = LTRIM$(RTRIM$(GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "drivers")))
  485.             WriteToLogFile "^ drivers = " + bd1$
  486.             WriteToLogFile "^ Add PEN to drivers line"
  487.             bdt$ = bd1$ + " pen"
  488.             bd1$ = LTRIM$(RTRIM$(bdt$))
  489.             WriteToLogFile "^ New drivers line is " + bd1$
  490.             CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", "drivers", bd1$, cmoOverwrite
  491.             FlushIniFile(WINDIR$ + "SYSTEM.INI")
  492.         END IF
  493.         WriteToLogFile "^ Add PEN=WACOM.DRV"
  494.         CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "drivers", "pen", "wacom.drv", cmoOverwrite
  495.         WriteToLogFile "^ Add PEN.DRV= to boot.description"
  496.         CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot.description", "pen.drv", "WACOM pen driver", cmoNone
  497.     END IF
  498.  
  499.     bd1$ = LTRIM$(RTRIM$(GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "drivers")))
  500.     WriteToLogFile "^ drivers = " + bd1$
  501.     IF LEN(bd1$) > 9 THEN
  502.         WriteToLogFile "^ Check for PENWINDOWS"
  503.         ps% = INSTR(UCASE$(bd1$)," PENWINDOWS ")
  504.         IF INSTR(LEN(bd1$)-9,UCASE$(bd1$),"PENWINDOWS") THEN
  505.             WriteToLogFile "^ PENWINDOWS found at the end"
  506.             IF LEN(bd1$) = 10 THEN
  507.                 WriteToLogFile "^ Clear the drivers line"
  508.                 bdt$ = ""
  509.                 bd1$ = ""
  510.             ELSEIF MID$(bd1$,LEN(bd1$)-10,1) = " " THEN
  511.                 WriteToLogFile "^ Remove PENWINDOWS from the line"
  512.                 bdt$ = MID$(bd1$,1,LEN(bd1$) - 11)
  513.                 bd1$ = LTRIM$(RTRIM$(bdt$))
  514.             END IF
  515.         ELSEIF MID$(UCASE$(bd1$),1,11) = "PENWINDOWS " THEN
  516.             WriteToLogFile "^ PENWINDOWS found in the beginning"
  517.             WriteToLogFile "^ Remove PENWINDOWS from the line"
  518.             bdt$ = MID$(bd1$,12,LEN(bd1$) - 11)
  519.             bd1$ = LTRIM$(RTRIM$(bdt$))
  520.         ELSEIF ps% THEN
  521.             WriteToLogFile "^ PENWINDOWS found in the line"
  522.             WriteToLogFile "^ Remove PENWINDOWS from the line"
  523.             bdt$ = MID$(bd1$,1,ps% - 1) + MID$(bd1$,ps% + 11,LEN(bd1$) - 10 - ps%)
  524.             bd1$ = LTRIM$(RTRIM$(bdt$))
  525.         END IF
  526.  
  527.         WriteToLogFile "^ Check for IDLLMAN"
  528.         ps% = INSTR(UCASE$(bd1$)," IDLLMAN ")
  529.         IF INSTR(LEN(bd1$)-6,UCASE$(bd1$),"IDLLMAN") THEN
  530.             WriteToLogFile "^ PENWINDOWS found at the end"
  531.             IF LEN(bd1$) = 7 THEN
  532.                 WriteToLogFile "^ Clear the drivers line"
  533.                 bdt$ = ""
  534.                 bd1$ = ""
  535.             ELSEIF MID$(bd1$,LEN(bd1$)-7,1) = " " THEN
  536.                 WriteToLogFile "^ Remove IDLLMAN from the line"
  537.                 bdt$ = MID$(bd1$,1,LEN(bd1$) - 8)
  538.                 bd1$ = LTRIM$(RTRIM$(bdt$))
  539.             END IF
  540.         ELSEIF MID$(UCASE$(bd1$),1,8) = "IDLLMAN " THEN
  541.             WriteToLogFile "^ IDLLMAN found in the beginning"
  542.             WriteToLogFile "^ Remove IDLLMAN from the line"
  543.             bdt$ = MID$(bd1$,12,LEN(bd1$) - 8)
  544.             bd1$ = LTRIM$(RTRIM$(bdt$))
  545.         ELSEIF ps% THEN
  546.             WriteToLogFile "^ IDLLMAN found in the line"
  547.             WriteToLogFile "^ Remove IDLLMAN from the line"
  548.             bdt$ = MID$(bd1$,1,ps% - 1) + MID$(bd1$,ps% + 8,LEN(bd1$) - 7 - ps%)
  549.             bd1$ = LTRIM$(RTRIM$(bdt$))
  550.         END IF
  551.  
  552.         WriteToLogFile "^ New drivers line is " + bd1$
  553.     END IF
  554.     WriteToLogFile "^ Remove PENWINDOWS= line from the drivers section"
  555.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "drivers", "penwindows", cmoNone
  556.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "drivers", "idllman", cmoNone
  557.     IF penw% > 0 THEN
  558.         WriteToLogFile "^ Add PENWINDOWS to drivers line"
  559.         bdt$ = bd1$ + " penwindows" + " idllman"
  560.         bd1$ = LTRIM$(RTRIM$(bdt$))
  561.     IF penw% > 1 THEN
  562.         WriteToLogFile "^ Add PENWINDOWS=PENWIN.DLL"
  563.         CreateIniKeyValue WINDIR$+"SYSTEM.INI", "drivers", "penwindows", "penwin.dll", cmoOverwrite
  564.         CreateIniKeyValue WINDIR$+"SYSTEM.INI", "drivers", "idllman", "idllman.dll", cmoOverwrite
  565.     END IF
  566.     END IF
  567.     WriteToLogFile "^ New drivers line is " + bd1$
  568.     RemoveIniKey WINDIR$ + "SYSTEM.INI", "boot", "drivers", cmoNone
  569.     CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "boot", "drivers", bd1$, cmoOverwrite
  570.     WriteToLogFile "^ Drivers line now equals " + GetIniKeyString(WINDIR$ + "SYSTEM.INI", "boot", "drivers")
  571.  
  572.     IF ReMove% THEN
  573.         WriteToLogFile "^ Remove the Pen Driver Section"
  574.         i% = WritePrivateProfileString("Pen Driver", NULL, NULL, WINDIR$ + "SYSTEM.INI")
  575.     ELSE
  576.         IF OPTCUR$ = "X" THEN
  577.             WriteToLogFile "^ Remove ComPort="
  578.             RemoveIniKey WINDIR$ + "SYSTEM.INI", "Pen Driver", "ComPort", cmoNone
  579.         ELSEIF OPTCUR$ = "" THEN
  580.             WriteToLogFile "^ Did not change ComPort="
  581.         ELSE
  582.             WriteToLogFile "^ ComPort=" + OPTCUR$
  583.             CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "Pen Driver", "ComPort", OPTCUR$, cmoOverwrite
  584.         END IF
  585.         WriteToLogFile "9600Baud=1"
  586.         CreateIniKeyValue WINDIR$ + "SYSTEM.INI", "Pen Driver", "9600baud", "1", cmoNone
  587.  
  588.         IF INSTR(bd1$, "idllman") THEN
  589.             bd1$ = bd1$ 
  590.         ELSE
  591.             bd1$ = bd1$ + " idllman"
  592.         END IF
  593.         CreateIniKeyValue WINDIR$+"WIN.INI", "IMEUserInterface", "installPenUi",  "1", cmoOverwrite
  594.         CreateIniKeyValue WINDIR$+"WIN.INI", "IMEUserInterface", "activePenUi",   "1", cmoOverwrite
  595.         CreateIniKeyValue WINDIR$+"WIN.INI", "IMEUserInterface", "PENUI1","MSPENUI.DLL,1.0,マイクロソフトペンユ-ザインターフェイス", cmoOverwrite
  596.  
  597. '' ver2.14からダブルクリックディスタンスのデフォリト値を15にする。これまでは4。(記述がなければ4となる)
  598.         CreateIniKeyValue WINDIR$+"WIN.INI", "windows", "DoubleClickWidth",  "15", cmoOverwrite
  599.         CreateIniKeyValue WINDIR$+"WIN.INI", "windows", "DoubleClickHeight",  "15", cmoOverwrite
  600.     END IF
  601. DO_NT:
  602.     UIPop 1
  603.  
  604.     IF Remove%=0 THEN
  605.     WriteToLogFile "^ Copy the files in the file list"
  606.     SetCopyGaugePosition 75,85
  607.     CopyFilesInCopyList
  608.     END IF
  609.  
  610. END SUB
  611.