home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 July / VPR9607B.BIN / driver / wacom / td98224j / setup / wacom.ms_ / wacom.ms
Text File  |  1996-02-14  |  33KB  |  876 lines

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