📄 regdll.tcl
字号:
# REGDLL.TCL - Setup procedures for implementing dll-registration wizard page
#
# Copyright 1999 Wind River Systems, Inc
#
# modification history
# --------------------
# 02a,12jun01,j_w Modified for Tornado 2.2
# 01e,13apr99,wmd Add some time delay between registration of each program to
# ensure that registration completes before starting another.
# 01d,19mar99,wmd Output to a file any debug messages.
# 01c,22feb99,tcy fixed logic to print debug messages
# 01b,17feb99,tcy modified debug messages when registering for dlls of remote
# servers
# 01a,26jan99,tcy extracted from INSTW32.TCL.
#
#############################################################################
#
# pageCreate(regTornado) - call regTornado to register Tornado DLLs for DCOM use
#
# This procedure will call procedure regTornado to register Tornado DLLs for
# DCOM use and also display progress with a meter
#
# SYNOPSIS
# .tS
# pageCreate(regTornado)
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc pageCreate(regTornado) {} {
global ctrlVals
set ctrlVals(numBbrd) 0
meterCreate [strTableGet REGTOR_MSG1]
set w [dlgFrmCreate [strTableGet REGTOR_TITLE]]
controlPropertySet $ctrlVals(meterWindow).$ctrlVals(meterWg) \
-background Blue -foreground Black
controlEnable $w.helpButt 0
controlEnable $w.backButt 0
controlEnable $w.nextButt 0
# process INF files --
# this compares the versions of the DLLs on the system and on the CD
# and uses the latest version
searchAndProcessSection FilesCopy \
[cdFileNameGet [file join RESOURCE INF TORNADO.INF]]
regTornado
meterDestroy $ctrlVals(meterWindow)
nextCallback
}
#############################################################################
#
# pageProcess(regTornado) - process inputs from regTornado page if any
#
# This procedure will process inputs from regTornado page if any
#
# SYNOPSIS
# .tS
# pageProcess(regTornado)
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: 1 when successful
#
# ERRORS: N/A
#
proc pageProcess(regTornado) {} {
return 1
}
#############################################################################
#
# addSlash - add extra slashes for eval use later
#
# This procedure will add extra slashes for eval user later
#
# SYNOPSIS
# .tS
# addSlash <path>
# .tE
#
# PARAMETERS:
# .IP path
# path with slashes
#
# RETURNS: new path with extra slashes
#
# ERRORS: N/A
#
proc addSlash {path} {
regsub -all {\\} $path {\\\\} newpath
return $newpath
}
#############################################################################
#
# regTornado - register all tornado dlls and executables
#
# This procedure will register all tornado dlls and executables
#
# SYNOPSIS
# .tS
# regTornado
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc regTornado {} {
global ctrlVals
global setupVals
set regsvr32 "[sysDirGet]\\Regsvr32.exe"
set binFile(ComTcl.dll) "[destDirGet]\\host\\x86-win32\\bin\\ComTcl.dll"
set binFile(WrsDebugger.dll) \
"[destDirGet]\\host\\x86-win32\\bin\\WrsDebugger.dll"
set binFile(Tornado.exe) "[destDirGet]\\host\\x86-win32\\bin\\Tornado.exe"
set regCommand(ComTcl.dll) "$regsvr32 /s /c $binFile(ComTcl.dll)"
set regCommand(WrsDebugger.dll) "$regsvr32 /s /c $binFile(WrsDebugger.dll)"
set regCommand(Tornado.exe) "$binFile(Tornado.exe) /RegServer"
set gdbFiles [glob -nocomplain [file join [destDirGet] \
host x86-win32 bin Cgdb*exe]]
foreach absFile $gdbFiles {
set f [file tail $absFile]
set binFile($f) [unixToDos $absFile]
set regCommand($f) "$binFile($f) /RegServer"
}
# check for file existence
foreach f [array names binFile] {
if ![file exists $binFile($f)] {
if {[debug] || ![info exists setupVals(iconInstallation)]} {
dbgputs "Error: $binFile($f) not found"
}
}
}
if ![file exists $regsvr32] {
if {[debug] || ![info exists setupVals(iconInstallation)]} {
dbgputs "Error: $regsvr32 not found"
}
}
# set up the meter
set count 0
set totalCmds [llength [array names binFile]]
foreach b [array names binFile] {
set percent [expr $count * 100 / $totalCmds]
meterUpdate $percent "Registering $b ..."
incr count
if {![catch {eval exec [addSlash $regCommand($b)]} result]} {
if {[debug] || ![info exists setupVals(iconInstallation)]} {
dbgputs "$b registration successful!"
}
} else {
if {[debug] || ![info exists setupVals(iconInstallation)]} {
dbgputs "$b registration failed: $result"
uninstLog setupLog "$b registration failed: $result"
}
}
after 2000
}
meterUpdate 100 ""
}
######################################################################
# Dialog Text Messages
######################################################################
set strTable(REGTOR_TITLE) "Software Registration"
set strTable(REGTOR_MSG1) \
"SETUP is registering software on your machine. This will take a few\
minutes."
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -