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