home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 March
/
VPR9703B.ISO
/
driver
/
canon
/
shot
/
95pb100
/
disk2
/
pbuddy.ms_
/
pbuddy.ms
Wrap
Text File
|
1995-12-19
|
55KB
|
1,649 lines
'********************************************************************
'* Print Buddy セットアップ
'********************************************************************
''$DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'$INCLUDE 'dialog.inc'
DECLARE SUB AddOptFilesToCopyList (ftype%)
DECLARE SUB RecalcOptFiles (ftype%)
DECLARE SUB RecalcPath
DECLARE SUB SetDriveStatus
DECLARE SUB RebootSystem
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION MakePath2 (szDir$, szFile$) AS STRING
DECLARE FUNCTION MakePath3 (szDir$) AS STRING
DECLARE FUNCTION BitmapCntrlInit LIB "pbinst.dll" as INTEGER
DECLARE FUNCTION SendMessage LIB "USER" (arg1%, arg2%, arg3%, arg4&) AS LONG
DECLARE FUNCTION ExitWindowsExec LIB "USER" (arg1$, arg2$) as INTEGER
DECLARE FUNCTION FRegisterControl LIB "pbinst.dll" as INTEGER
DECLARE FUNCTION FGetPrivateProfileString LIB "pbinst.dll" (arg1$, arg2$) as INTEGER
DECLARE FUNCTION BitmapInitialize LIB "pbinst.dll" as INTEGER
DECLARE FUNCTION DrvCheck LIB "drvcheck.dll" as INTEGER
'*************************************************************************
'** 目的: **
'** インストーラの初期化 **
'*************************************************************************
INIT:
''インストーラの最大化
hPrevCur% = ShowWaitCursor() ''カーソルを砂時計にする
HFRAME% = HwndFrame()
l& = SendMessage(HFRAME%, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
CUIDLL$ = "pbinst.dll" ''ユーザインターフェース用DLL
HELPPROC$ = "FHelpDlgProc" ''ヘルプダイアログ用プロシージャ
SetBitmap CUIDLL$, LOGO ''Print Buddy のロゴを表示
SetTitle "Print Buddy インストーラ" ''インストーラのタイトル For Lite
''シンボルデータの取得
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "PBINST.INF"
END IF
ReadInfFile szInf$
''SETUP.EXEの起動元を判定
IF IsDriveRemovable(GetSymbolValue("STF_SRCDIR")) = 1 THEN
FLOPY$ = "YES"
SetSymbolValue "FromFlopy","YES"
''INIファイルの設定値の取得
ISINIFILE$ = "YES"
sz$ = UIStartDlg(CUIDLL$, SEARCH_DRV, "FPassProc", 0, "") ''ドライブ検索中ダイアログボックスを表示
szLocalDrives$ = "LOCAL" ''シンボル名をLOCALとする
GetLocalHardDrivesList szLocalDrives$ ''すべてのドライブをszLocalDrivesにリストする
n% = GetListLength(szLocalDrives$) ''szLocalDrivesシンボルリストの個数を取得
TEMP$ = ""
FOR i% = 1 TO n% STEP 1 ''ドライブ数分ループ
Drive$ = GetListItem(szLocalDrives$, i%) ''ドライブ名取得
Drive$ = Drive$ + ":\" ''正式なドライブ名を作成
INIFILE$ = FindFileInTree("PBUDDY.INI", Drive$) ''指定したドライブにPBUDDY.INIファイルが存在するか検索
IF INIFILE$ <> "" THEN
TEMP$ = INIFILE$
END IF
NEXT
INIFILE$ = TEMP$
UIPop 1
''PBUDDY.INIファイルがなければフロッピーディスクのPBUDDY.INIファイルを指定する
IF INIFILE$ = "" THEN
ISINIFILE$ = "NO"
INIFILE$ = GetSymbolValue("STF_SRCDIR") + "PBUDDY.INI"
END IF
ELSE
FLOPY$ = "NO"
ISINIFILE$ = "YES"
FILEDIR$ = GetSymbolValue("STF_SRCDIR")
INIFILE$ = MID$(FILEDIR$, 1, LEN(FILEDIR$) - 9) + "PBUDDY.INI"
END IF
''カーソルを矢印にする
RestoreCursor hPrevCur%
''ディレクトリを作成
PBUDDYDIR$ = GetIniKeyString(INIFILE$, "PRINTBUDDY", "PBUDDYDIR")
PBUDDYWINDIR$ = GetIniKeyString(INIFILE$, "PRINTBUDDY", "PBUDDYWINDIR")
PBUDDYDIRSETUP$ = MakePath(PBUDDYDIR$, "WINSETUP")
DEST$ = PBUDDYDIR$
OPTCUR$ = "1"
WINDRIVE$ = MID$(GetWindowsDir, 1, 1) ''Windowsのドライブを取得
WINSYSDIR$ = GetWindowsSysDir() ''Windowsのシステムディレクトリを取得
WINDIR$ = GetWindowsDir() ''Windowsのディレクトリを取得
WININIFILE$ = WINDIR$ + "WIN.INI"
''インストール用シンボルリスト作成
CHECKSTATES$ = "CheckItemsState"
DRIVETEXT$ = "DriveStatusText"
FOR i% = 1 TO 8 STEP 1
AddListItem CHECKSTATES$, "ON"
NEXT i%
IF ISINIFILE$ = "YES" THEN
''ReplaceListItem CHECKSTATES$, 4, "OFF" ''INIFILES = 4
IF GetIniKeyString(INIFILE$, "FILE", "INSTALL") = "1" THEN
AddListItem CHECKSTATES$, "OFF" ''DINIFILES = 9
ReplaceListItem CHECKSTATES$, 8, "OFF" ''SETUP = 8
ELSE
AddListItem CHECKSTATES$, "ON" ''DINIFILES = 9
END IF
ELSE
AddListItem CHECKSTATES$, "ON" ''DINIFILES = 9
END IF
AddListItem CHECKSTATES$, "OFF" ''CHECKID = 10
AddListItem CHECKSTATES$, "ON" ''CJLMON = 11
AddListItem CHECKSTATES$, "ON" ''STATUS = 12
AddListItem CHECKSTATES$, "ON" ''RCPDLL = 13
AddListItem CHECKSTATES$, "ON" ''RCPRES = 14
AddListItem CHECKSTATES$, "ON" ''STSRES = 15
''CTL3DV2.DLLが存在するときはインストールしない
IF DoesFileExist(WINSYSDIR$ + "ctl3dv2.dll", cmoNone) = 1 THEN
ReplaceListItem CHECKSTATES$, 7, "OFF"
END IF
FOR i% = 1 TO 7 STEP 1
AddListItem DRIVETEXT$, ""
NEXT i%
ReplaceListItem DRIVETEXT$, 7, DEST$
''ディスク内容シンボルリスト作成
INIFILESNEEDS$ = "IniFileNeeds"
DINIFILESNEEDS$ = "DIniFileNeeds"
MONITORNEEDS$ = "MonitorNeeds"
REMOTEPANELNEEDS$ = "RemotePanelNeeds"
CTLNEEDS$ = "CtlNeeds"
SETUPNEEDS$ = "SetupNeeds"
CJLMONNEEDS$ = "CjlMonNeeds"
STATUSNEEDS$ = "StatusNeeds"
RCPDLLNEEDS$ = "RcrDllNeeds"
RCPRESNEEDS$ = "RcrResNeeds"
STSRESNEEDS$ = "StsResNeeds"
EXTRACOSTS$ = "ExtraCosts"
BIGLIST$ = "BigList"
LOCATION$ = "Location"
SetSymbolValue "Location", "LOCAL"
SELECTID$ = "SelectID"
''ディスク容量チェック用シンボルリスト作成
FOR i% = 1 TO 10 STEP 1
AddListItem BIGLIST$, ""
NEXT i%
FOR i% = 1 TO 26 STEP 1
AddListItem EXTRACOSTS$, "0"
NEXT i%
' ''プリンタドライバシンボルリスト
' PRINTERDRV$ = "ListItemsIn"
' PNTDRVNAME$ = "PntDrvName"
' PRINTERPORT$ = "PrinterPort"
' PORTLISTIN$ = "PortListItemsIn"
' PORTLISTOUT$ = "PortListItemsOut"
' AddListItem PRINTERDRV$, "Canon LBP-730 LIPS4"
INSTABLEPRN$ = "InstablePrn"
SELECTPRNINDEX$ = "SelectPrnIndex"
FORINIPRNNAME$ = "ForIniPrnName"
AddListItem INSTABLEPRN$, "Canon LBP-730 LIPS4"
AddListItem INSTABLEPRN$, "Canon LBP-720 LIPS4"
AddListItem INSTABLEPRN$, "Canon LBP-450 LIPS4"
AddListItem FORINIPRNNAME$, "LBP-730"
AddListItem FORINIPRNNAME$, "LBP-720"
AddListItem FORINIPRNNAME$, "LBP-450"
' AddListItem PNTDRVNAME$, "LIPS4"
' AddListItem PRINTERPORT$, "LPT1"
''プリンタポートシンボルリスト作成
' i% = FGetPrivateProfileString(WININIFILE$, "Ports")
' n% = GetListLength("KeyListOut")
' FOR i% = 1 TO n% STEP 1
' AddListItem PORTLISTIN$, GetListItem("KeyListOut", i%)
' NEXT i%
'*************************************************************************
'** 目的: **
'** ようこそ **
'*************************************************************************
WELCOME:
sz$ = UIStartDlg(CUIDLL$, WELCOME1, "FInfoDlgProc", 0, "") ''「ようこそ」ダイアログボックスを表示
IF sz$ = "CONTINUE" THEN ''「継続」ならダイアログボックスを閉じて次の処理へ
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO WELCOME
ELSE ''「終了」なら「ASKQUIT_1」へ
GOSUB ASKQUIT_3
GOTO WELCOME ''「ASKQUIT_3」で「継続」が選択され、ここに戻ってきた場合には、「ようこそ」を繰り返す
END IF
'*************************************************************************
'** 目的: **
'** プリンタの機種選択 **
'*************************************************************************
IF ISINIFILE$ = "YES" THEN
IF DoesDirExist(MakePath(PBUDDYDIR$, "WINSETUP")) = 1 THEN
IF FLOPY$ = "YES" THEN
GOTO SELECTIONPRINTER
ELSE
GOTO COMPUTER
ENDIF
ELSE
IF FLOPY$ = "YES" THEN
GOTO SELECTIONPRINTER
ELSE
i% = DoMsgBox("Print Buddyのインストールは、フロッピーディスクから行ってください。", "インストールの中止", MB_OK+MB_TASKMODAL+MB_ICONHAND)
UIPopAll
END
ENDIF
ENDIF
ELSE
GOTO SELECTIONPRINTER
ENDIF
SELECTIONPRINTER:
sz$ = UIStartDlg(CUIDLL$, SELECT_PRINTER, "FPrnDlgProc", 0, "") ''「プリンタ機種選択」ダイアログボックスを表示
IF sz$ = "CONTINUE" THEN ''「継続」ならダイアログボックスを閉じて次の処理へ
'選ばれたプリンタの名前を保存しておく
PRINTERDRV$ = GetSymbolValue("ListItemsIn")
'選ばれたプリンタのインデックスを保存しておく。
SELECTPRNINDEX$ = GetSymbolValue("SelectPrnIndex")
'シンボルInstablePrnの消去する
RemoveSymbol("InstablePrn")
'ダイアログを消す
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO SELECTIONPRINTER
ELSE ''「終了」なら「ASKQUIT_1」へ
GOSUB ASKQUIT_3
GOTO SELECTIONPRINTER ''「ASKQUIT_3」で「継続」が選択され、ここに戻ってきた場合には、「プリンタ機種選択」を繰り返す
END IF
'*************************************************************************
'** 目的: **
'** コンピュータの機種選択 **
'*************************************************************************
COMPUTER:
SetSymbolValue "RadioDefault","DOSV"
SetSymbolValue "ComputerOut", "DOSV"
COMP_LOOP:
sz$ = UIStartDlg(CUIDLL$, WHAT_COMP, "FCompDlgProc", 0, "")
COMPUTER$ = GetSymbolValue("ComputerOut")
IF COMPUTER$ = "NEC" THEN
DEST$ = "A:\PBUDDY95"
ReplaceListItem CHECKSTATES$, 2, "OFF"
ELSEIF COMPUTER$ = "DOSV" THEN
DEST$ = "C:\PBUDDY95"
ReplaceListItem CHECKSTATES$, 1, "OFF"
END IF
''ボタン処理
IF sz$ = "CONTINUE" THEN
UIPop 1
RemoveSymbol "RadioDefault"
RemoveSymbol "ComputerOut"
ELSEIF sz$ = "REACTIVATE" THEN
GOTO COMP_LOOP
ELSE
GOSUB ASKQUIT_3
GOTO COMP_LOOP
END IF
'*************************************************************************
'** 目的: **
'** インストーラのメニュー **
'*************************************************************************
MENU:
IF ISINIFILE$ = "YES" THEN
IF DoesDirExist(MakePath(PBUDDYDIR$, "WINSETUP")) = 1 THEN
IF FLOPY$ = "YES" THEN
SetSymbolValue "IsIniFile","NO" ''""
ELSEIF FLOPY$ = "NO" THEN
SetSymbolValue "IsIniFile","YES"
END IF
ELSE
SetSymbolValue "IsIniFile","NO"
END IF
ELSE
SetSymbolValue "IsIniFile","NO"
END IF
sz$ = UIStartDlg(CUIDLL$, INST_MENU, "FInstMenuDlgProc", 0, "") ''「メニュー」ダイアログボックスを表示
IF sz$ = "STANDARD" THEN ''「標準インストール」ならダイアログボックスを閉じて「STANDARD」へ
UIPop 1
RemoveSymbol "IsIniFile"
GOTO STANDARD
ELSEIF sz$ = "CUSTOM" THEN ''「カスタムインストール」ならダイアログボックスを閉じて「CUSTOM」へ
UIPop 1
RemoveSymbol "IsIniFile"
GOTO CUSTOM
ELSEIF sz$ = "MAINTENANCE" THEN ''「追加/削除」ならダイアログボックスを閉じて「MAINTENANCE」へ
UIPop 1
RemoveSymbol "IsIniFile"
GOSUB MAINTENANCE
GOTO MENU ''「MENU」の繰り返し
ELSEIF sz$ = "DELETE" THEN ''「デインストール」ならダイアログボックスを閉じて「DELETE」へ
UIPop 1
RemoveSymbol "IsIniFile"
GOSUB DELETE
GOTO MENU ''
ELSEIF sz$ = "REACTIVATE" THEN
RemoveSymbol "IsIniFile"
GOTO MENU
ELSE ''「その他」ならダイアログボックスを閉じて「ASKQUIT_1」へ
GOSUB ASKQUIT_3
GOTO MENU ''「MENU」の繰り返し
END IF
UIPop 1
END
'*************************************************************************
'** 目的: **
'** 標準インストール **
'*************************************************************************
STANDARD:
''インストール先のディレクトリを決定
GOSUB INSTALLPATH
PBUDDYDIR$ = DEST$
PBUDDYWINDIR$ = MakePath(DEST$, "WIN")
PBUDDYDOSDIR$ = MakePath(DEST$, "DOS")
PBUDDYDIRSETUP$ = MakePath(PBUDDYDIR$, "WINSETUP")
OLDINIFILE$ = INIFILE$
INIFILE$ = MakePath(PBUDDYDIR$, "PBUDDY.INI")
IF sz$ = "CONTINUE" THEN ''「継続」ならダイアログボックスを閉じて次の処理へ
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO STANDARD
ELSE ''「終了」なら「ASKQUIT_1」へ
GOSUB ASKQUIT_1
GOTO STANDARD ''「STANDARD」の繰り返し
END IF
''メモリ計算
RecalcPath
FOR i% = 1 TO 7 STEP 1
IF GetListItem(BIGLIST$, i%) <> "" THEN
GOSUB TOOBIG
GOTO STANDARD
END IF
NEXT i%
''オプション機器設定の確認
OPTIONKIKI:
sz$ = UIStartDlg(CUIDLL$, OPTION, "FInfoDlgProc", 0, "") ''「オプション機器設定」ダイアログボックスを表示
IF sz$ = "CONTINUE" THEN
UIPop 1
INIFILE$ = OLDINIFILE$
GOSUB MAINTENANCE
INIFILE$ = MakePath(PBUDDYDIR$, "PBUDDY.INI")
IF RET$ = "CANCEL" THEN
RET$ = ""
GOTO OPTIONKIKI
END IF
GOTO JUMP_STD
ELSEIF sz$ = "BACK" THEN
UIPop 1
ELSE ''「終了」なら「ASKQUIT_1」へ
GOSUB ASKQUIT_1
GOTO OPTIONKIKI
END IF ''ダイアログボックスを閉じる
''プリンタのロケーションを聞く
' PRINTER:
' SetSymbolValue "RadioDefault", "LOCAL"
' LOC_LOOP:
' sz$ = UIStartDlg(CUIDLL$, WHERE_PRINTER, "FLocationDlgProc", 0, "") ''「プリンタの設置場所の選択」ダイアログボックスを表示
' PRINTER$ = GetSymbolValue("Location")
' IF sz$ = "CONTINUE" THEN
' UIPop 1
' RemoveSymbol "RadioDefault"
' ELSEIF sz$ = "REACTIVATE" THEN
' GOTO LOC_LOOP
' ELSE ''「終了」なら「ASKQUIT_1」へ
' RemoveSymbol "RadioDefault"
' GOSUB ASKQUIT_1
' GOTO LOC_LOOP
' END IF
' ''コンピュータがNECの場合、プリンタの接続の確認ダイアログを表示させる
JUMP_STD:
' IF COMPUTER$ = "NEC" THEN
' GOSUB CONECTPRINTER
' END IF
''標準インストールの開始
GOSUB STANDARD_INSTALL
''Windowsをリブートするか確認する
GOSUB REBOOT
END
'*************************************************************************
'** 目的: **
'** カスタムインストール **
'*************************************************************************
CUSTOM:
RecalcPath
SetDriveStatus
''インストール先のディレクトリを決定
SetSymbolValue "SetupDirOut", DEST$
PRINTER$ = GetSymbolValue("Location")
PBUDDYDIR$ = DEST$
PBUDDYWINDIR$ = MakePath(DEST$, "WIN")
PBUDDYDOSDIR$ = MakePath(DEST$, "DOS")
PBUDDYDIRSETUP$ = MakePath(PBUDDYDIR$, "WINSETUP")
INIFILE$ = MakePath(PBUDDYDIR$, "PBUDDY.INI")
CUSTOM_LOOP:
sz$ = UIStartDlg(CUIDLL$, CUSTOM, "FCustomDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO CUSTOM_LOOP
END IF
RecalcPath
FOR i% = 1 TO 7 STEP 1
IF GetListItem(BIGLIST$, i%) <> "" THEN
GOSUB TOOBIG
GOTO CUSTOM_LOOP
END IF
NEXT i%
RemoveSymbol "SetupDirOut"
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO CUSTOM_LOOP
ELSEIF sz$ = "REMOTE" THEN
RecalcOptFiles REMOTEPANEL
SetDriveStatus
GOTO CUSTOM_LOOP
ELSEIF sz$ = "STATUS" THEN
RecalcOptFiles MONITOR
SetDriveStatus
GOTO CUSTOM_LOOP
' ELSEIF sz$ = "DRIVER" THEN
' RecalcOptFiles DRIVER
' SetDriveStatus
' GOTO CUSTOM_LOOP
ELSEIF sz$ = "GETDIR" THEN
OLDEST$ = DEST$
GOSUB INSTALLPATH
IF DEST$ <> OLDEST$ THEN
IF LEN(DEST$) > 32 THEN
GOSUB CUTPATH
SetSymbolValue "SetupDirOut", CUTPATH$
ELSE
SetSymbolValue "SetupDirOut", DEST$
END IF
PRINTER$ = GetSymbolValue("Location")
PBUDDYDIR$ = DEST$
PBUDDYWINDIR$ = MakePath(DEST$, "WIN")
PBUDDYDOSDIR$ = MakePath(DEST$, "DOS")
PBUDDYDIRSETUP$ = MakePath(PBUDDYDIR$, "WINSETUP")
INIFILE$ = MakePath(PBUDDYDIR$, "PBUDDY.INI")
RecalcPath
SetDriveStatus
END IF
GOTO CUSTOM_LOOP
ELSEIF sz$ = "IDCANCEL" THEN
GOTO CUSTOM_LOOP
ELSE
GOSUB ASKQUIT_1
GOTO CUSTOM_LOOP
END IF
' ''コンピュータがNECの場合、プリンタの接続の確認ダイアログを表示させる
' IF COMPUTER$ = "NEC" THEN
' GOSUB CONECTPRINTER
' END IF
''カスタムインストールの開始
CST$ = "1"
GOSUB CUSTOM_INSTALL
END
'*************************************************************************
'** 目的: **
'** バスの短縮 **
'*************************************************************************
CUTPATH:
FOR i% = 0 TO 25 STEP 1
IF MID$(DEST$, LEN(DEST$)-i%, 1) = "\" THEN
n% = i%
END IF
NEXT i%
CUTPATH$ = MID$(DEST$, 1, 1) + "\..." + MID$(DEST$, LEN(DEST$)-n%, n%+1)
RETURN
'*************************************************************************
'** 目的: **
'** メンテナンス **
'*************************************************************************
MAINTENANCE:
''フロッピーディスクからの起動の場合
IF FLOPY$ = "YES" THEN
OLDINIFILE$ = INIFILE$
GOSUB MAKEDUMINI
END IF
''シンボルリスト作成
SELECTFONT$ = "FontListItemsOut"
REGEMU$ = "RegEmuListItemsIn"
ADDEMU$ = "AddEmuListItemsIn"
NEMU$ = "EmuNum"
FONT$ = "FontListItemsIn"
AddListItem FONT$, "行書体"
AddListItem FONT$, "楷書体"
AddListItem FONT$, "教科書体"
i% = BitmapInitialize()
CURPRNSELECT$ = "CurPrnSelect"
AddListItem CURPRNSELECT$, GetIniKeyString(INIFILE$, "PRINTBUDDY", "MODEL")
IF GetIniKeyString(INIFILE$, "OPTIONS", "DUPKEY") = "1" THEN
UNIT$ = "ON"
ELSE
UNIT$ = "OFF"
END IF
' PRINTER$ = GetIniKeyString(INIFILE$, "MODE", "Location")
' IF PRINTER$ = "" THEN
PRINTER$ = "LOCAL"
' END IF
IF GetIniKeyString(INIFILE$, "FONT", "GYOSHO-MEDIUM") = "行書体" THEN
AddListItem SELECTFONT$, "行書体"
END IF
IF GetIniKeyString(INIFILE$, "FONT", "KAISHO-MEDIUM") = "楷書体" THEN
AddListItem SELECTFONT$, "楷書体"
END IF
IF GetIniKeyString(INIFILE$, "FONT", "KYOKASHO-MEDIUM") = "教科書体" THEN
AddListItem SELECTFONT$, "教科書体"
END IF
CASET$ = GetIniKeyString(INIFILE$, "OPTIONS", "IN-TRAYS")
SetSymbolValue "Unit", UNIT$
SetSymbolValue "Location", PRINTER$
SetSymbolValue "Caset", CASET$
MAINTENANCE_LOOP:
i% = FRegisterControl()
sz$ = UIStartDlg(CUIDLL$, PERIPHERAL, "FMainteDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
CASET$ = GetSymbolValue("Caset")
IF CASET$ = "1" THEN
CASET$ = "2"
ELSEIF CASET$ = "2" THEN
CASET$ = "3"
ELSE
CASET$ = "4"
END IF
UNIT$ = GetSymbolValue("Unit")
PRINTER$ = GetSymbolValue("Location")
n% = GetListLength("FontListItemsOut")
FOR i%=1 TO n% STEP 1
AddListItem SELECTFONT$, GetListItem("FontListItemsOut", i%)
NEXT i%
CreateIniKeyValue INIFILE$, "FONT", "GYOSHO-MEDIUM", "", cmoVital + cmoOverwrite
CreateIniKeyValue INIFILE$, "FONT", "KAISHO-MEDIUM", "", cmoVital + cmoOverwrite
CreateIniKeyValue INIFILE$, "FONT", "KYOKASHO-MEDIUM", "", cmoVital + cmoOverwrite
FOR i%=1 TO n% STEP 1
TEMPFONT$ = GetListItem(SELECTFONT$, i%)
IF TEMPFONT$ = "行書体" THEN
CreateIniKeyValue INIFILE$, "FONT", "GYOSHO-MEDIUM", "行書体", cmoVital + cmoOverwrite
ELSEIF TEMPFONT$ = "楷書体" THEN
CreateIniKeyValue INIFILE$, "FONT", "KAISHO-MEDIUM", "楷書体", cmoVital + cmoOverwrite
ELSEIF TEMPFONT$ = "教科書体" THEN
CreateIniKeyValue INIFILE$, "FONT", "KYOKASHO-MEDIUM", "教科書体", cmoVital + cmoOverwrite
END IF
NEXT i%
CreateIniKeyValue INIFILE$, "OPTIONS", "IN-TRAYS", CASET$, cmoVital + cmoOverwrite
IF UNIT$ = "ON" THEN
CreateIniKeyValue INIFILE$, "OPTIONS", "DUPKEY", "1", cmoVital + cmoOverwrite
ELSE
CreateIniKeyValue INIFILE$, "OPTIONS", "DUPKEY", "0", cmoVital + cmoOverwrite
END IF
CreateIniKeyValue INIFILE$, "MODE", "Location", PRINTER$, cmoVital + cmoOverwrite
IF PRINTER$ = "LOCAL" THEN
CreateIniKeyValue INIFILE$, "MODE", "Direction", "1", cmoVital + cmoOverwrite
ELSE
CreateIniKeyValue INIFILE$, "MODE", "Direction", "0", cmoVital + cmoOverwrite
END IF
ELSEIF sz$ = "EMULATER" THEN
UIPop 1
GOSUB EMULATION
CASET$ = GetSymbolValue("Caset")
IF CASET$ = "1" THEN
CASET$ = "2"
ELSEIF CASET$ = "2" THEN
CASET$ = "3"
ELSE
CASET$ = "4"
END IF
SetSymbolValue "Caset", CASET$
GOTO MAINTENANCE_LOOP
ELSE
IF DoesFileExist(MakePath(PBUDDYDIR$, "DUMMY.INI"), cmoNone) = 1 THEN
RemoveFile MakePath(PBUDDYDIR$, "DUMMY.INI"), cmoForce
END IF
RET$ = "CANCEL"
END IF
UIPop 1
RemoveSymbol "FontListItemsOut"
RemoveSymbol "RegEmuListItemsIn"
RemoveSymbol "AddEmuListItemsIn"
RemoveSymbol "EmuNum"
RemoveSymbol "FontListItemsIn"
RemoveSymbol "Unit"
RemoveSymbol "Location"
RemoveSymbol "Caset"
RemoveSymbol "CurPrnSelect"
IF FLOPY$ = "YES" THEN
INIFILE$ = OLDINIFILE$
END IF
RETURN
'*************************************************************************
'** 目的: **
'** PBUDDY.INIファイルのダミーファイル作成 **
'*************************************************************************
MAKEDUMINI:
CopyFile MakePath(GetSymbolValue("STF_SRCDIR"), "PBUDDY.INI"), MakePath(PBUDDYDIR$, "DUMMY.INI"), cmoOverwrite, 0
INIFILE$ = MakePath(PBUDDYDIR$, "DUMMY.INI")
RETURN
'*************************************************************************
'** 目的: **
'** エミュレーションの登録/変更/削除 **
'*************************************************************************
EMULATION:
CHANGE$ = "Change"
REGEMU$ = "RegEmuListItemsIn"
ADDEMU$ = "AddEmuListItemsIn"
SetSymbolValue "Change", "NO"
EMULATION_LOOP:
RemoveSymbol "RegEmuListItemsIn"
RemoveSymbol "AddEmuListItemsIn"
i% = FGetPrivateProfileString(INIFILE$, "OPTION-TRANSLATOR")
n% = GetListLength("KeyListOut")
FOR i% = 1 TO n% STEP 1
TEMPREG$ = GetListItem("KeyListOut", i%)
IF MID$(TEMPREG$, 1, 1) = ";" THEN
ELSEIF MID$(TEMPREG$, 1, 1) = "#" THEN
ELSE
IF GetIniKeyString(INIFILE$, "OPTION-TRANSLATOR", TEMPREG$) = "2" THEN
TEMPREG$ = MID$(TEMPREG$ ,2, LEN(TEMPREG$) - 1)
AddListItem REGEMU$, TEMPREG$
ELSEIF GetIniKeyString(INIFILE$, "OPTION-TRANSLATOR", TEMPREG$) = "3" THEN
TEMPREG$ = MID$(TEMPREG$ ,2, LEN(TEMPREG$) - 1)
AddListItem REGEMU$, TEMPREG$
END IF
END IF
NEXT i%
IF DoesIniSectionExist(INIFILE$, "@N201") = 1 THEN
AddListItem ADDEMU$, "N201"
END IF
IF DoesIniSectionExist(INIFILE$, "@ESCP") = 1 THEN
AddListItem ADDEMU$, "ESCP"
END IF
IF DoesIniSectionExist(INIFILE$, "HP-GL") = 1 THEN
AddListItem ADDEMU$, "HP-GL"
END IF
IF DoesIniSectionExist(INIFILE$, "I5577") = 1 THEN
AddListItem ADDEMU$, "I5577"
END IF
IF DoesIniSectionExist(INIFILE$, "F359") = 1 THEN
AddListItem ADDEMU$, "F359"
END IF
IF DoesIniSectionExist(INIFILE$, "N5273") = 1 THEN
AddListItem ADDEMU$, "N5273"
END IF
sz$ = UIStartDlg(CUIDLL$, ADD_EMULATER, "FEmulationDlgProc", 0, "")
IF sz$ = "EXIT" THEN
GOSUB REGISTEREMULATION
UIPop 1
ELSEIF sz$ = "CANCEL" THEN
UIPop 1
ELSEIF sz$ = "KUMIKOMI" THEN
UIPop 1
SetSymbolValue "Change", "YES"
GOSUB REGISTEREMULATION
GOSUB ADDEMULATION
GOTO EMULATION_LOOP
ELSEIF sz$ = "REACTIVATE" THEN
GOTO EMULATION_LOOP
ELSE
UIPop 1
GOTO EMULATION_LOOP
END IF
RemoveSymbol "Change"
RemoveSymbol "KeyListOut"
RETURN
'*************************************************************************
'** 目的: **
'** エミュレーションの登録作業 **
'*************************************************************************
REGISTEREMULATION:
i% = FGetPrivateProfileString(INIFILE$, "OPTION-TRANSLATOR")
n% = GetListLength("KeyListOut")
FOR i% = 1 TO n% STEP 1
TEMPREG$ = GetListItem("KeyListOut", i%)
IF MID$(TEMPREG$, 1, 1) = ";" THEN
ELSEIF MID$(TEMPREG$, 1, 1) = "#" THEN
ELSE
IF GetIniKeyString(INIFILE$,"OPTION-TRANSLATOR",TEMPREG$) = "2" THEN
CreateIniKeyValue INIFILE$, "OPTION-TRANSLATOR", TEMPREG$, "0", cmoVital + cmoOverwrite
ELSEIF GetIniKeyString(INIFILE$,"OPTION-TRANSLATOR",TEMPREG$) = "3" THEN
CreateIniKeyValue INIFILE$, "OPTION-TRANSLATOR", TEMPREG$, "1", cmoVital + cmoOverwrite
END IF
END IF
NEXT i%
S_NUM% = GetListLength("DelEmu")
FOR i% = 1 TO S_NUM% STEP 1
IF GetIniKeyString(INIFILE$,"OPTION-TRANSLATOR","@"+GetListItem("DelEmu",i%)) = "0" THEN
CreateIniKeyValue INIFILE$, "OPTION-TRANSLATOR", "@"+GetListItem("DelEmu",i%), "2", cmoVital + cmoOverwrite
ELSEIF GetIniKeyString(INIFILE$,"OPTION-TRANSLATOR","@"+GetListItem("DelEmu",i%)) = "1" THEN
CreateIniKeyValue INIFILE$, "OPTION-TRANSLATOR", "@"+GetListItem("DelEmu",i%), "3", cmoVital + cmoOverwrite
END IF
NEXT i%
RETURN
'*************************************************************************
'** 目的: **
'** デインストール **
'*************************************************************************
DELETE:
sz$ = UIStartDlg(CUIDLL$, DEINSTALL, "FInfoDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
UIPop 1
GOSUB DELETECONFIRM
IF sz$ = "EXIT" THEN '”デインストールの確認”で終了ならば
UIPop 1 'デインストールに戻らず
RETURN 'メニューに戻る
ENDIF
GOTO DELETE
ELSEIF sz$ = "REACTIVATE" THEN
GOTO DELETE
ELSE
UIPop 1
END IF
RETURN
'*************************************************************************
'** 目的: **
'** デインストールの確認 **
'*************************************************************************
DELETECONFIRM:
sz$ = UIStartDlg(CUIDLL$, DEINST_CONFIRM, "FInfoDlgProc", 0, "")
IF sz$ = "DELETE" THEN
UIPop 1
GOTO DELETEOBJ
ELSEIF sz$ = "REACTIVATE" THEN
GOTO DELETE
ELSEIF sz$ = "EXIT" THEN
UIPop 1
RETURN
ELSE
UIPop 1
END IF
RETURN
'*************************************************************************
'** 目的: **
'** ファイルとグループの削除 **
'*************************************************************************
DELETEOBJ:
''PBUDDY.INIファイルのInstallキーを0にする
CreateIniKeyValue INIFILE$, "FILE", "INSTALL", "0", cmoVital + cmoOverwrite
''PBUDDY\WINディレクトリ内のファイルの削除
INIFILE$ = PBUDDYDIR$ + "\PBFILE.INI"
i% = FGetPrivateProfileString(INIFILE$, "pbuddy")
n% = GetListLength("KeyListOut")
FOR i% = 1 TO n% STEP 1
TEMPFILE$ = MakePath(PBUDDYWINDIR$, GetListItem("KeyListOut", i%))
RemoveFile TEMPFILE$, cmoForce
NEXT i%
''PBUDDY\WINSETUPディレクトリ内のファイルの削除
INIFILE$ = PBUDDYDIR$ + "\PBFILE.INI"
i% = FGetPrivateProfileString(INIFILE$, "setup")
n% = GetListLength("KeyListOut")
FOR i% = 1 TO n% STEP 1
TEMPFILE$ = MakePath(PBUDDYDIRSETUP$, GetListItem("KeyListOut", i%))
RemoveFile TEMPFILE$, cmoForce
NEXT i%
''WINDOWS\SYSTEMディレクトリ内のファイルの削除
i% = FGetPrivateProfileString(INIFILE$, "windows")
n% = GetListLength("KeyListOut")
FOR i% = 1 TO n% STEP 1
TEMPFILE$ = MakePath(WINSYSDIR$, GetListItem("KeyListOut", i%))
RemoveFile TEMPFILE$, cmoForce
NEXT i%
JUMP_DELETE:
''PBUDDY\WINディレクトリの削除
i% = SetSilentMode(1)
IF DoesDirExist(PBUDDYWINDIR$) = 1 THEN
RemoveDir PBUDDYWINDIR$, cmoNone
END IF
''WINSETUPディレクトリの削除。
IF DoesDirExist(PBUDDYDIRSETUP$) = 1 THEN
RemoveDir PBUDDYDIRSETUP$, cmoNone
END IF
i% = SetSilentMode(0)
''PBFILE.INIファイルの削除
RemoveFile PBUDDYDIR$+"\PBFILE.INI", cmoForce
sz$ = UIStartDlg(CUIDLL$, DEINSTSUCCESS, "FInfo0DlgProc", 0, "")
UIPop 1
END
'*************************************************************************
'** 目的: **
'** 一覧以外のオプションエミュレーションの組み込み **
'*************************************************************************
ADDEMULATION:
GOSUB EMULATIONPATH
IF sz$ = "CONTINUE" THEN
CHKFILE$ = MakePath(DEST$, "OPTION.INI")
ans% = DoesfileExist(CHKFILE$, femReadWrite)
IF ans% = 1 THEN
UIPop 1
GOSUB MOREEMULATION
ELSE
GOSUB BADPATH
GOTO ADDEMULATION
END IF
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ADDEMULATION
END IF
UIPop 1
RETURN
'*************************************************************************
'** 目的: **
'** 一覧以外のオプションエミュレーションの表示 **
'*************************************************************************
MOREEMULATION:
EMUNAME$ = GetIniKeyString(CHKFILE$, "Install", "Emulator")
SetSymbolValue "EmuName", EMUNAME$
KEY$ = "KeyListOut"
CONT$ = "Cont"
sz$ = UIStartDlg(CUIDLL$, OTHER_EMULATER, "FMOREEMULATIONDlgProc", 0, "")
IF sz$ = "CONTINUE" THEN
MOREEMULATION$ = GetSymbolValue("MOREEMULATION")
n% = LEN(MOREEMULATION$)
FOR i% = 1 TO n% STEP 1
IF MID$(MOREEMULATION$, i%, 1) = " " THEN
GOTO BREAK
END IF
NEXT i%
BREAK:
LISTNAME$ = MID$(MOREEMULATION$, 1, i% - 1)
i% = FGetPrivateProfileString(CHKFILE$, LISTNAME$)
n% = GetListLength("KeyListOut")
FOR i% = 1 TO n% STEP 1
AddListItem KEY$, GetListItem("KeyListOut", i%)
AddListItem CONT$, GetIniKeyString(CHKFILE$, LISTNAME$, GetListItem(KEY$, i%))
NEXT i%
FOR i% = 1 TO n% STEP 1
CreateIniKeyValue INIFILE$, LISTNAME$, GetListItem(KEY$, i%), GetListItem(CONT$, i%), cmoVital + cmoOverwrite
NEXT i%
ELSEIF sz$ = "REACTIVATE" THEN
ELSE
END IF
RemoveSymbol "KeyListOut"
RemoveSymbol "Cont"
RETURN
'*************************************************************************
'** 目的: **
'** 標準インストール作業 **
'*************************************************************************
STANDARD_INSTALL:
GOSUB CREATELIST
''カーソルを砂時計にする
hPrevCur% = ShowWaitCursor()
''PBUDDY.INIとWIN.INIファイル初期化中ダイアログボックスを表示
sz$ = UIStartDlg(CUIDLL$, WAIT, "FPassProc", 0, "")
''PBUDDY.INIとWIN.INIファイルの修正
GOSUB MAKEINI
''ComDrvXXの名称を変更
GOSUB RENAMECOMDRV
''PBINST.INFファイルを変更
GOSUB RENAMESETUP
''プログラムグループとアイコンの作成
GOSUB MAKEGROUP
UIPop 1
''カーソルを矢印にする
RestoreCursor hPrevCur%
RETURN
'*************************************************************************
'** 目的: **
'** カスタムインストール作業 **
'*************************************************************************
CUSTOM_INSTALL:
IF GetListItem(CHECKSTATES$,REMOTEPANEL) = "OFF" AND GetListItem(CHECKSTATES$,MONITOR) = "OFF" THEN
ReplaceListItem CHECKSTATES$, SETUP, "OFF"
ReplaceListItem CHECKSTATES$, STSRES, "OFF"
ReplaceListItem CHECKSTATES$, RCPRES, "OFF"
ReplaceListItem CHECKSTATES$, STATUS, "OFF"
ReplaceListItem CHECKSTATES$, RCPDLL, "OFF"
END IF
IF GetListItem(CHECKSTATES$,REMOTEPANEL) = "ON" AND GetListItem(CHECKSTATES$,MONITOR) = "OFF" THEN
ReplaceListItem CHECKSTATES$, STSRES, "OFF"
ReplaceListItem CHECKSTATES$, STATUS, "OFF"
ReplaceListItem CHECKSTATES$, STSRES, "OFF"
END IF
IF GetListItem(CHECKSTATES$,REMOTEPANEL) = "OFF" AND GetListItem(CHECKSTATES$,MONITOR) = "ON" THEN
ReplaceListItem CHECKSTATES$, RCPDLL, "OFF"
ReplaceListItem CHECKSTATES$, RCPRES, "OFF"
END IF
GOSUB CREATELIST
' ''プリンタドライバをインストールする場合
' IF GetListItem(CHECKSTATES$, DRIVER) = "ON" THEN
' GOSUB PRTDRV_INSTALL
' END IF
''カーソルを砂時計にする
hPrevCur% = ShowWaitCursor()
''PBUDDY.INIとWIN.INIファイル初期化中ダイアログボックスを表示
sz$ = UIStartDlg(CUIDLL$, WAIT, "FPassProc", 0, "")
''PBUDDY.INIとWIN.INIファイルの修正
GOSUB MAKEINI
' ''ComDrvXXの名称を変更
IF GetListItem(CHECKSTATES$,REMOTEPANEL) = "OFF" AND GetListItem(CHECKSTATES$,MONITOR) = "OFF" THEN
ELSE
GOSUB RENAMECOMDRV
END IF
''PBINST.INFファイルを変更
GOSUB RENAMESETUP
''プログラムグループとアイコンの作成
GOSUB MAKEGROUP
UIPop 1
''カーソルを矢印にする
RestoreCursor hPrevCur%
''Windowsをリブートするか確認する
GOSUB REBOOT
END
'*************************************************************************
'** 目的: **
'** ファイルコピーリスト作成 **
'*************************************************************************
CREATELIST:
ClearCopyList
' AddOptFilesToCopyList COMDRV98
' AddOptFilesToCopyList COMDRVAT
' IF CST$ <> "1" THEN
' AddOptFilesToCopyList DRIVER
' END IF
' IF DoesFileExist(MakePath(PBUDDYDIR$, "PBUDDY.INI"), cmoNone) = 0 THEN
AddOptFilesToCopyList INIFILES
' END IF
AddOptFilesToCopyList DINIFILES
AddOptFilesToCopyList MONITOR
AddOptFilesToCopyList REMOTEPANEL
AddOptFilesToCopyList CTL
AddOptFilesToCopyList SETUP
AddOptFilesToCopyList CJLMON
AddOptFilesToCopyList STATUS
AddOptFilesToCopyList RCPDLL
AddOptFilesToCopyList RCPRES
AddOptFilesToCopyList STSRES
CreateDir PBUDDYDIR$, cmoNone
i% = BitmapCntrlInit()
AddToBillboardList CUIDLL$, BILLBOARD, "FModelessDlgProc", 1
''コピーゲージを表示
SetCopyGaugePosition -1, GetScreenHeight() / 6 - 16
SetRestartDir WINDIR$
''コピー
CopyFilesInCopyList
RETURN
'*************************************************************************
'** 目的: **
'** プログラムグループとアイコンの作成 **
'*************************************************************************
MAKEGROUP:
IF GetListItem(CHECKSTATES$,REMOTEPANEL) = "OFF" AND GetListItem(CHECKSTATES$,MONITOR) = "OFF" THEN
ELSE
CreateProgmanGroup "Print Buddy for Windows95", "", cmoNone
' ShowProgmanGroup "Print Buddy",1, cmoNone
END IF
''リモートパネル
IF GetListItem(CHECKSTATES$, REMOTEPANEL) = "ON" THEN
CreateProgmanItem "Print Buddy for Windows95", "リモートパネル", PBUDDYWINDIR$+"\rcpwin.exe","", comOverwrite
END IF
''ステータスモニタ
IF GetListItem(CHECKSTATES$, STATUS) = "ON" THEN
CreateProgmanItem "Print Buddy for Windows95", "ステータスモニタ", PBUDDYWINDIR$+"\stswin.exe","", comOverwrite
END IF
''セットアップ
IF GetListItem(CHECKSTATES$, SETUP) = "ON" THEN
CreateProgmanItem "Print Buddy for Windows95", "インストーラ", PBUDDYDIRSETUP$+"\setup.exe","", comOverwrite
CreateIniKeyValue INIFILE$, "FILE", "INSTALL", "1", cmoVital + cmoOverwrite
END IF
RETURN
'*************************************************************************
'** 目的: **
'** INIファイルの変更 **
'*************************************************************************
MAKEINI:
''DUMMY.INIファイルがあった場合には、DUMMY.INIファイルに書き込む
IF DoesFileExist(MakePath(PBUDDYDIR$, "DUMMY.INI"), cmoNone) = 1 THEN
OLDINIFILE$ = INIFILE$
INIFILE$ = MakePath(PBUDDYDIR$, "DUMMY.INI")
END IF
''PBUDDY.INIファイルのPRINTBUDDYセクションにインストールディレクトリを登録
CreateIniKeyValue INIFILE$, "PRINTBUDDY", "PBUDDYDIR", PBUDDYDIR$, cmoVital + cmoOverwrite
CreateIniKeyValue INIFILE$, "PRINTBUDDY", "PBUDDYWINDIR", PBUDDYWINDIR$, cmoVital + cmoOverwrite
CreateIniKeyValue INIFILE$, "PRINTBUDDY", "PBUDDYDOSDIR", PBUDDYDOSDIR$, cmoVital + cmoOverwrite
' pbuddy.iniのMODELセクションに選択されたプリンタ名を入れる。
CreateIniKeyValue INIFILE$, "PRINTBUDDY", "MODEL", GetListItem(FORINIPRNNAME$,VAL(SELECTPRNINDEX$)), cmoVital + cmoOverwrite
''PBUDDY.INIファイルおよびWIN.INIファイルの修正
IF PRINTER$ = "NETWORK" THEN
CreateIniKeyValue INIFILE$, "MODE", "Direction", "0", cmoVital + cmoOverwrite
ELSEIF PRINTER$ = "LOCAL" THEN
IF COMPUTER$ = "NEC" THEN
IF COMMDRV$ <> "NONE" THEN
CreateIniKeyValue WININIFILE$, "WINDOWS", "spooler", "no", cmoVital + cmoOverwrite
END IF
ELSE
CreateIniKeyValue WININIFILE$, "WINDOWS", "spooler", "no", cmoVital + cmoOverwrite
CreateIniKeyValue INIFILE$, "MODE", "Direction", "1", cmoVital + cmoOverwrite
END IF
END IF
' ''WIN.INIファイルの[WINDOWS]セクションにプリンタドライバを登録
' IF CST$ <> "1" THEN
' IF GetListItem(CHECKSTATES$, 3) = "ON" THEN
'
' CreateIniKeyValue WININIFILE$, "WINDOWS", "device", GetSymbolValue("ListItemsIn")+",LIPS4,LPT1:", cmoVital + cmoOverwrite
' CreateIniKeyValue WININIFILE$, "PrinterPorts", GetSymbolValue("ListItemsIn"), "LIPS4,LPT1:,15,45", cmoVital + cmoOverwrite
' CreateIniKeyValue WININIFILE$, "devices", GetSymbolValue("ListItemsIn"), "LIPS4,LPT1:", cmoVital + cmoOverwrite
'
' END IF
' END IF
''WIN.INIファイルへ[Print Buddy]セクションを追加しディレクトリを登録する
CreateIniKeyValue WININIFILE$, "Print Buddy", "Path", PBUDDYDIR$, cmoVital + cmoOverwrite
''WIN.INIファイルにSTATUSキーを追加
GOSUB FILLSTATUS
''DUMMY.INIファイルがあったらPBUDDY.INIファイルへリネーム
IF DoesFileExist(MakePath(PBUDDYDIR$, "DUMMY.INI"), cmoNone) = 1 THEN
RemoveFile MakePath(PBUDDYDIR$, "PBUDDY.INI"), cmoForce
RenameFile MakePath(PBUDDYDIR$, "DUMMY.INI"), "PBUDDY.INI"
INIFILE$ = OLDINIFILE$
END IF
RETURN
'*************************************************************************
'** 目的: **
'** WIN.INIにSTATUSおよびプリンタドライバ名を追加 **
'*************************************************************************
FILLSTATUS:
''STATUSキーの追加
IF COMPUTER$ = "NEC" THEN
IF COMMDRV$ <> "NONE" THEN
CreateIniKeyValue WININIFILE$, "Print Buddy プリントマネージャ", "Status", "1", cmoVital + cmoOverwrite
END IF
ELSEIF COMPUTER$ = "DOSV" THEN
CreateIniKeyValue WININIFILE$, "Print Buddy プリントマネージャ", "Status", "1", cmoVital + cmoOverwrite
ELSE
CreateIniKeyValue WININIFILE$, "Print Buddy プリントマネージャ", "Status", "0", cmoVital + cmoOverwrite
END IF
' ''プリンタドライバ名の追加
' CreateIniKeyValue WININIFILE$, "Print Buddy プリンタ", GetSymbolValue("ListItemsIn"), "1", cmoVital + cmoOverwrite
RETURN
'*************************************************************************
'** 目的: **
'** コミュニケーションドライバの名称変更 **
'*************************************************************************
RENAMECOMDRV:
RemoveFile PBUDDYDIR$+"\DEFAULT.RCT", cmoNone
RemoveFile WINSYSDIR$+"STSRES.DLL", cmoNone
RemoveFile PBUDDYWINDIR$+"\RCPRES.DLL", cmoNone
IF GetListItem(FORINIPRNNAME$,VAL(SELECTPRNINDEX$)) = "LBP-450" THEN
RemoveFile WINSYSDIR$+"STSRES.390", cmoNone
RemoveFile PBUDDYWINDIR$+"\RCPRES.390", cmoNone
RemoveFile PBUDDYDIR$+"\DEFAULT.730", cmoNone
RemoveFile PBUDDYDIR$+"\DEFAULT.720", cmoNone
RenameFile WINSYSDIR$+"STSRES.410", "STSRES.DLL"
RenameFile PBUDDYDIR$+"\DEFAULT.450", "DEFAULT.RCT"
RenameFile PBUDDYWINDIR$+"\RCPRES.410", "RCPRES.DLL"
RETURN
END IF
IF GetListItem(FORINIPRNNAME$,VAL(SELECTPRNINDEX$)) = "LBP-730" THEN
RemoveFile WINSYSDIR$+"STSRES.410", cmoNone
RemoveFile PBUDDYWINDIR$+"\RCPRES.410", cmoNone
RemoveFile PBUDDYDIR$+"\DEFAULT.450", cmoNone
RemoveFile PBUDDYDIR$+"\DEFAULT.720", cmoNone
RenameFile WINSYSDIR$+"STSRES.390", "STSRES.DLL"
RenameFile PBUDDYDIR$+"\DEFAULT.730", "DEFAULT.RCT"
RenameFile PBUDDYWINDIR$+"\RCPRES.390", "RCPRES.DLL"
RETURN
END IF
IF GetListItem(FORINIPRNNAME$,VAL(SELECTPRNINDEX$)) = "LBP-720" THEN
RemoveFile WINSYSDIR$+"STSRES.410", cmoNone
RemoveFile PBUDDYWINDIR$+"\RCPRES.410", cmoNone
RemoveFile PBUDDYDIR$+"\DEFAULT.450", cmoNone
RemoveFile PBUDDYDIR$+"\DEFAULT.730", cmoNone
RenameFile WINSYSDIR$+"STSRES.390", "STSRES.DLL"
RenameFile PBUDDYDIR$+"\DEFAULT.720", "DEFAULT.RCT"
RenameFile PBUDDYWINDIR$+"\RCPRES.390", "RCPRES.DLL"
RETURN
END IF
RETURN
'*************************************************************************
'** 目的: **
'** ハードディスク用SETUPファイルの作成 **
'*************************************************************************
RENAMESETUP:
''SETUP.LSTファイルの作成
IF GetListItem(CHECKSTATES$, 8) = "ON" THEN
RemoveFile PBUDDYDIRSETUP$+"\SETUP.LST", cmoNone
RenameFile PBUDDYDIRSETUP$+"\SETUP.L_T", "SETUP.LST"
END IF
RETURN
'*************************************************************************
'** 目的: **
'** Windowsをリブートする場合の確認メッセージを表示 **
'*************************************************************************
REBOOT:
sz$ = UIStartDlg(CUIDLL$, EXITSUCCESS, "FInfoDlgProc", 0, "") ''インストール完了ダイアログボックスを表示
UIPop 1
RETURN
'*************************************************************************
'** 目的: **
'** 終了 **
'*************************************************************************
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = EXITSUCCESS
ELSEIF ERR = STFQUIT THEN
dlg% = EXITQUIT
ELSE
dlg% = EXITFAILURE
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
END
'*************************************************************************
'** 目的: **
'** エラー終了 **
'*************************************************************************
ERRQUIT:
i% = DoMsgBox("インストールファイルが破損しています。", "インストールの中止", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
'*************************************************************************
'** 目的: **
'** インストーラの中断メッセージ その1 **
'*************************************************************************
ASKQUIT_1:
sz$ = UIStartDlg(CUIDLL$, ASKQUIT_1, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT_1
ELSEIF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOTO ASKQUIT_1
END IF
RETURN
'*************************************************************************
'** 目的: **
'** インストーラの中断メッセージ その3 **
'*************************************************************************
ASKQUIT_3:
sz$ = UIStartDlg(CUIDLL$, ASKQUIT_3, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
END
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT_3
ELSEIF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOTO ASKQUIT_3
END IF
RETURN
'*************************************************************************
'** 目的: **
'** ディレクトリ入力用ダイアログボックス表示 その1 **
'*************************************************************************
INSTALLPATH:
SetSymbolValue "SetupDirIn", DEST$
IF DoesDirExist(DEST$) = 0 THEN
TEMPDEST$ = MID$(DEST$, 1, 3)
SetSymbolValue "ReferenceDirChk", "ON"
SetSymbolValue "ReferenceDir", TEMPDEST$
ELSE
SetSymbolValue "ReferenceDir", DEST$
END IF
SetSymbolValue "EditFocus", "END"
INSTALLPATH_LOOP:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FInputDirDlgProc", 0, "")
DEST$ = GetSymbolValue("SetupDirOut")
IF DoesDirExist(DEST$+"\WINSETUP") = 0 THEN
ReplaceListItem CHECKSTATES$, 8, "ON" ''SETUP = 8
ReplaceListItem CHECKSTATES$, 9, "ON" ''DINIFILE = 9
ELSE
ReplaceListItem CHECKSTATES$, 8, "OFF" ''SETUP = 8
ReplaceListItem CHECKSTATES$, 9, "OFF" ''DINIFILE = 9
END IF
SetSymbolValue "ReferenceDirChk", "OFF"
IF sz$ = "CONTINUE" THEN
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO INSTALLPATH_LOOP
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO INSTALLPATH_LOOP
ELSE
GOSUB ASKQUIT_1
GOTO INSTALLPATH
END IF
RETURN
'*************************************************************************
'** 目的: **
'** ディレクトリ入力用ダイアログボックス表示 その2 **
'*************************************************************************
EMULATIONPATH:
IF COMPUTER$ = "NEC" THEN
TEMPDEST$ = "C:\"
ELSE
TEMPDEST$ = "A:\"
END IF
SetSymbolValue "EditFocus", "END"
EMULATIONPATH_LOOP:
SetSymbolValue "ReferenceDirChk", "ON"
SetSymbolValue "ReferenceDir", TEMPDEST$
SetSymbolValue "SetupDirIn", TEMPDEST$
SetSymbolValue "EditFocus", "END"
sz$ = UIStartDlg(CUIDLL$, EMULATER_DIR, "FInputFDDirDlgProc", 0, "")
SetSymbolValue "ReferenceDirChk", "OFF"
DEST$ = GetSymbolValue("SetupDirOut")
IF sz$ = "CONTINUE" THEN
ELSEIF sz$ = "REACTIVATE" THEN
GOTO EMULATIONPATH_LOOP
ELSE
UIPop 1
END IF
RETURN
'*************************************************************************
'** 目的: **
'** 入力パス不良メッセージボックス表示 **
'*************************************************************************
BADPATH:
sz$ = UIStartDlg(CUIDLL$, PATH_ERR, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO BADPATH
END IF
UIPop 1
RETURN
'*************************************************************************
'** 目的: **
'** メモリ不足メッセージボックス表示 **
'*************************************************************************
TOOBIG:
sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO TOOBIG
END IF
UIPop 1
RETURN
'***************************************************************************
'** 目的 **
'** コピーリスト作成 **
'** 引き数 **
'** ftype% - 以下に示すファイル **
'** COMDRV98, COMDRVAT, DRIVER, INIFILES, MONITOR, REOTEPANEL **
'** リターン値 **
'** なし **
'***************************************************************************
SUB AddOptFilesToCopyList (ftype%) STATIC
IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
SrcDir$ = GetSymbolValue("STF_SRCDIR")
' IF ftype% = DRIVER THEN
' AddSectionFilesToCopyList "Driver", SrcDir$, WINSYSDIR$
IF ftype% = INIFILES THEN
AddSectionFilesToCopyList "IniFile", SrcDir$, PBUDDYDIR$
ELSEIF ftype% = DINIFILES THEN
AddSectionFilesToCopyList "DIniFile", SrcDir$, PBUDDYDIR$
ELSEIF ftype% = MONITOR THEN
AddSectionFilesToCopyList "SMonitor", SrcDir$, WINSYSDIR$
ELSEIF ftype% = REMOTEPANEL THEN
AddSectionFilesToCopyList "RCP", SrcDir$, PBUDDYWINDIR$
ELSEIF ftype% = CTL THEN
AddSectionFilesToCopyList "Ctl", SrcDir$, WINSYSDIR$
ELSEIF ftype% = SETUP THEN
AddSectionFilesToCopyList "Setup", SrcDir$, PBUDDYDIRSETUP$
ELSEIF ftype% = CJLMON THEN
AddSectionFilesToCopyList "CjlMon", SrcDir$, WINSYSDIR$
ELSEIF ftype% = STATUS THEN
AddSectionFilesToCopyList "STS", SrcDir$, PBUDDYWINDIR$
ELSEIF ftype% = RCPDLL THEN
AddSectionFilesToCopyList "RCPDll", SrcDir$, WINSYSDIR$
ELSEIF ftype% = RCPRES THEN
AddSectionFilesToCopyList "RCPRes", SrcDir$, PBUDDYWINDIR$
ELSEIF ftype% = STSRES THEN
AddSectionFilesToCopyList "STSRes", SrcDir$, WINSYSDIR$
END IF
SrcDir$ = ""
END IF
END SUB
'*************************************************************************
'** 目的: **
'** インストールファイルの合計サイズを計算 その2 **
'** **
'** 引き数: **
'** なし **
'** リターン値: **
'** なし **
'*************************************************************************
SUB RecalcOptFiles (ftype%) STATIC
hPrevCur% = ShowWaitCursor()
ClearCopyList
AddOptFilesToCopyList ftype%
fExtra% = 0
IF ftype% = SETUP THEN
ListSym$ = SETUPNEEDS$
IF GetListItem(CHECKSTATES$, SETUP) = "ON" THEN
''Add extra cost to Windows drive for ini/progman, etc.
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
fExtra% = 1
END IF
' ELSEIF ftype% = DRIVER THEN
' ListSym$ = DRIVERNEEDS$
ELSEIF ftype% = INIFILES THEN
ListSym$ = INIFILESNEEDS$
ELSEIF ftype% = DINIFILES THEN
ListSym$ = DINIFILESNEEDS$
ELSEIF ftype% = MONITOR THEN
ListSym$ = MONITORNEEDS$
ELSEIF ftype% = REMOTEPANEL THEN
ListSym$ = REMOTEPANELNEEDS$
ELSEIF ftype% = CTL THEN
ListSym$ = CTLNEEDS$
ELSEIF ftype% = CJLMON THEN
ListSym$ = CJLMONNEEDS$
ELSEIF ftype% = STATUS THEN
ListSym$ = STATUSNEEDS$
ELSEIF ftype% = RCPDLL THEN
ListSym$ = RCPDLLNEEDS$
ELSEIF ftype% = RCPRES THEN
ListSym$ = RCPRESNEEDS$
ELSEIF ftype% = STSRES THEN
ListSym$ = STSRESNEEDS$
END IF
StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
cost& = 0
FOR i% = 1 TO 26 STEP 1
cost& = cost& + VAL(GetListItem(ListSym$, i%))
NEXT i%
IF StillNeed& > 0 THEN
ReplaceListItem BIGLIST$, ftype%, "YES"
ELSE
ReplaceListItem BIGLIST$, ftype%, ""
END IF
IF fExtra% THEN
ReplaceListItem EXTRACOSTS$, ndrive%, "0"
END IF
RestoreCursor hPrevCur%
ListSym$ = ""
END SUB
'*************************************************************************
'** 目的: **
'** インストールファイルの合計サイズを計算 その1 **
'** **
'** 引き数: **
'** なし **
'** リターン値: **
'** なし **
'*************************************************************************
SUB RecalcPath STATIC
hPrevCur% = ShowWaitCursor()
' RecalcOptFiles DRIVER
RecalcOptFiles INIFILES
RecalcOptFiles DINIFILES
RecalcOptFiles MONITOR
RecalcOptFiles REMOTEPANEL
RecalcOptFiles CTL
RecalcOptFiles SETUP
' RecalcOptFiles CJLMON
' RecalcOptFiles STATUS
' RecalcOptFiles RCPDLL
' RecalcOptFiles RCPRES
' RecalcOptFiles STSRES
RestoreCursor hPrevCur%
END SUB
'*************************************************************************
'** 目的: **
'** ディスクスペースとインストールファイルのサイズ表示 **
'** **
'** 引き数: **
'** なし **
'** リターン値: **
'** なし **
'*************************************************************************
SUB SetDriveStatus STATIC
cost& = 0
drive$ = MID$(DEST$, 1, 1)
ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
' IF GetListItem(CHECKSTATES$, 3) = "ON" THEN
' cost& = cost& + 622197
' END IF
' cost& = cost& + 619723
IF GetListItem(CHECKSTATES$, 5) = "ON" THEN
cost& = cost& + 409000
END IF
IF GetListItem(CHECKSTATES$, 6) = "ON" THEN
cost& = cost& + 1417022
END IF
free& = GetFreeSpaceForDrive(drive$)
ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
IF GetListItem(CHECKSTATES$, CHECKID) = "ON" THEN
ReplaceListItem DRIVETEXT$, 2, "0" + " K"
ELSEIF GetListItem(CHECKSTATES$, CHECKID) = "OFF" THEN
ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
END IF
ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
' IF drive$ = WINDRIVE$ THEN
' ReplaceListItem DRIVETEXT$, 4, ""
' ReplaceListItem DRIVETEXT$, 5, ""
' ReplaceListItem DRIVETEXT$, 6, ""
' ELSE
' cost& = 0
' ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
' IF GetListItem(CHECKSTATES$, 3) = "ON" THEN
' cost& = cost& + 584453 + 6114 + 6018 + 5547 + 21648
' END IF
' IF GetListItem(CHECKSTATES$, 5) = "ON" THEN
' cost& = cost& + 250866
' END IF
' IF cost& = 0 THEN
' ReplaceListItem DRIVETEXT$, 4, ""
' ReplaceListItem DRIVETEXT$, 5, ""
' ReplaceListItem DRIVETEXT$, 6, ""
' ELSE
' free& = GetFreeSpaceForDrive(WINDRIVE$)
' ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
'
' IF GetListItem(CHECKSTATES$, CHECKID) = "ON" THEN
' ReplaceListItem DRIVETEXT$, 5, "0" + " K"
' ELSEIF GetListItem(CHECKSTATES$, CHECKID) = "OFF" THEN
' ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
' END IF
' ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
' END IF
' END IF
END SUB
'*************************************************************************
'** 目的: **
'** パスの作成 その1 **
'** **
'** 引き数: **
'** なし **
'** リターン値: **
'** なし **
'*************************************************************************
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
IF szDir$ = "" THEN
MakePath = szFile$
ELSEIF szFile$ = "" THEN
MakePath = szDir$
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
MakePath = MakePath2(szDir$, szFile$)
ELSE
MakePath = szDir$ + "\" + szFile$
END IF
END FUNCTION
'*************************************************************************
'** 目的: **
'** パスの計算 その2 **
'** **
'** 引き数: **
'** (文字列1 , 文字列2) **
'** リターン値: **
'** 文字列 **
'*************************************************************************
FUNCTION MakePath2 (szDir$, szFile$) STATIC AS STRING
IF IsDBCSChar(szDir$, LEN(szDir$)) = 2 THEN
MakePath2 = szDir$ + "\" + szFile$
ELSE
MakePath2 = szDir$ + szFile$
END IF
END FUNCTION
'*************************************************************************
'** 目的: **
'** ウィンドウズの再起動 **
'** **
'** 引き数: **
'** なし **
'** リターン値: **
'** なし **
'*************************************************************************
'SUB RebootSystem STATIC
' '' _mssetup.bat を調べて、システムファイルの更新の有無を確認する
' i% = RestartListEmpty()
'
' IF i% = 0 THEN ''システムファイルを更新する時(今回は不要)
' i% = ExitExecRestart()
' ELSE ''更新すべきシステムファイルがない時
' i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" )
' END IF
'END SUB