📄 register.tcl
字号:
# Load user name from the previous installation if any if {"[userNameGet]" == ""} { if {![catch {sysRegistryValueRead HKEY_CURRENT_USER \ "Software\\$setupVals(WRS)" "name"} name]} { userNameSet $name } elseif {![catch {sysRegistryValueRead HKEY_LOCAL_MACHINE \ "SOFTWARE\\$setupVals(WRS)" "name"} name]} { userNameSet $name } else { userNameSet "" } } # Load company name from the previous installation if any if {"[companyNameGet]" == ""} { if {![catch {sysRegistryValueRead HKEY_CURRENT_USER \ "Software\\$setupVals(WRS)" "company"} company]} { companyNameSet $company } elseif {![catch {sysRegistryValueRead HKEY_LOCAL_MACHINE \ "SOFTWARE\\$setupVals(WRS)" "company"} company]} { companyNameSet $company } else { companyNameSet "" } } # Load installation key from the previous installation if any if {![catch {sysRegistryValueRead HKEY_CURRENT_USER \ "Software\\$setupVals(WRS)" "keyData"} keyString]} { instKeyDataSet [getKeyData $keyString $setupVals(CDnumber) list] } elseif {![catch {sysRegistryValueRead HKEY_LOCAL_MACHINE \ "SOFTWARE\\$setupVals(WRS)" "keyData"} keyString]} { instKeyDataSet [getKeyData $keyString $setupVals(CDnumber) list] } else { instKeyDataSet "" }}############################################################################### getKeyData - search for the requested CD number in string of keys and# CD numbers and return either the installation key or the# combination of key and the CD number## This procedure will search for the requested CD number in string of keys and# CD numbers and return either the installation key or the combination of# key and the CD number## SYNOPSIS# .tS# getKeyData <keyString> <CDnumber> <data># .tE## PARAMETERS:# .IP keyString# the entire list of keys and CD number read from the registry# .IP CDnumber# the CD number (TDK-XXXXX-XX-XX) to look for in keyString# .IP data# data to be fetched - key -- installation key# - list -- combination of key and CD number## RETURNS: either the installation key or the combination of# key and the CD number## ERRORS: N/A#proc getKeyData {keyString CDnumber {data {key list}}} { for {set idx 0} {$idx < [llength $keyString]} {incr idx} { set combo [lindex $keyString $idx] set found [lsearch $combo $CDnumber] if {$found != -1} { switch -exact $data { key { return [lindex $combo 1]} list { return [lrange $combo 1 end]} default { dbgputs "getKeyData: bad argument: $data" return "" } } } } return ""}################################################################################ objectConstruct - creates objects to store all information about the unlocked# products.## This function must be called prior to the following functions: cdInfoGet/Set# SYNOPSIS# objectConstruct## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc objectConstruct {} { global productObj partObj featureObj cdObj global constructed global setupVals if {![info exists constructed([instKeyGet])]} { catch { unset constructed unset productObj unset partObj unset featureObj unset setupVals(tornadoIndex) unset setupVals(drvIndex) } set constructed([instKeyGet]) 1 set productDescList {} set setupVals(drvIndex) -1 foreach prodIndex [setupProductIndexListGet] { set productObj($prodIndex,instFlag) 0 set productObj($prodIndex,prevInstFlag) 0 set productObj($prodIndex,partIndexList) {} set partIndexList [setupPartIndexListGet $prodIndex] foreach partIndex $partIndexList { set infoList [setupPartInfoGet $partIndex] set productNum [lindex $infoList 0] set productName [lindex $infoList 1] set productDesc [lindex $infoList 2] set partName [lindex $infoList 3] set partDesc [lindex $infoList 4] set productIndex [lindex $infoList 5] set defInstFlag [lindex $infoList 6] set totalFile [lindex $infoList 7] set featureDesc [lindex $infoList 8] set featureId [lindex $infoList 9] set size [lindex $infoList 10] set coreProd [lindex $infoList 12] # WORKAROUND to solve the problem of the double # quote at the end of product and part descriptions set productDesc [string trimright $productDesc \"] set partDesc [string trimright $partDesc \"] # record the prodIndex of the drivers product if {[string compare $productName "tornado-comp-drv"] == 0} { if {[lindex $setupVals(drvIndex) 0] == -1} { set setupVals(drvIndex) \ [lreplace $setupVals(drvIndex) 0 0] } set lineIx [string last ":" $productDesc] set lineLen [string length $productDesc] set arch [string range $productDesc \ [expr $lineIx+2] $lineLen] lappend setupVals(drvIndex) [list $prodIndex $arch] } if {[string compare $productName "tornado"] == 0} { set lineIx [string last "x" $productDesc] set lineLen [string length $productDesc] set arch [string range $productDesc \ [expr $lineIx+2] $lineLen] lappend setupVals(tornadoIndex) [list $prodIndex $arch] } if {[string compare $productName "tornado-vxsim"] == 0 } { set lineIx [string last ":" $productDesc] set lineLen [string length $productDesc] set arch [string range $productDesc \ [expr $lineIx+2] $lineLen] switch -exact -- $arch { hp9700 { set arch simhppa } x86-winNT { set arch simnt } solaris { set arch simsolaris } } lappend setupVals(tornadoIndex) [list $prodIndex $arch] } # construct CD object if {![info exists cdObj(number)]} { set cdObj(number) [lindex $infoList 11] } # construct product objects set productObj($prodIndex,number) $productNum set productObj($prodIndex,name) $productName set productObj($prodIndex,desc) $productDesc set productObj($prodIndex,featureId) $featureId set productObj($prodIndex,coreProd) $coreProd lappend productObj($prodIndex,partIndexList) $partIndex # construct part objects set partObj($partIndex,instFlag) $defInstFlag set partObj($partIndex,prevInstFlag) $defInstFlag set partObj($partIndex,desc) $partDesc set partObj($partIndex,size) $size set partObj($partIndex,totalFile) $totalFile set partObj($partIndex,parent) $prodIndex set partObj($partIndex,coreProd) $coreProd set featureObj($featureId) $featureDesc if {"$defInstFlag" == "1"} { set productObj($prodIndex,instFlag) 1 set productObj($prodIndex,prevInstFlag) 1 } } if {[llength $partIndexList] == 1} { set partObj([lindex $partIndexList 0],instFlag) 1 set partObj([lindex $partIndexList 0],prevInstFlag) 1 } lappend productDescList \ [list $productObj($prodIndex,desc) $prodIndex] } set cdObj(productIndexList) {} foreach pair [lsort $productDescList] { lappend cdObj(productIndexList) [lindex $pair 1] } } # make the list of tornado indices unique if {[info exists setupVals(tornadoIndex)]} { set setupVals(tornadoIndex) [lunique $setupVals(tornadoIndex)] } dbgputs "finish constructing the products array"}####################################################################### Dialog Text Messages######################################################################set strTable(REGISTRATION_TITLE) "User Registration"set strTable(REGISTRATION_FAE_WARN_1) \ "The installation key you are about to enter will NOT\ be saved in the system registry.\nIs this what you want?"set strTable(REGISTRATION_MSG_1) \ "Below, type your name, the name of your company, and your installation\ key, which can be found on a page accompanying this release entitled\ [string toupper [getProdInfo name]] Installation Keys sheet."set strTable(REGISTRATION_MSG_1_BSP) \ "Below, type your name, the name of your company, and the BSP\ installation key."set strTable(REGISTRATION_MSG_2) "Name"set strTable(REGISTRATION_MSG_3) "Company"set strTable(REGISTRATION_MSG_4) "Install Key"set strTable(REGISTRATION_MSG_5) "Information"set strTable(REGISTRATION_NO_ZIP_FILE_TITLE) \ "Locating Archive Files"set strTable(REGISTRATION_NO_ZIP_FILE) \ "format %s \"SETUP cannot find the ZIP files for installing\ \[cdromDescGet\] in the default directory.\n\n\ Please type the root of the\ path containing the ZIP files.\n\nClick the\ <Browse> button to choose the directory interactively.\""set strTable(REGISTRATION_NO_ZIP_FILE_TEXT) \ "format %s \"SETUP cannot find the ZIP files for installing\ \[cdromDescGet\] in the default directory.\n\n\ Please type the root of the\ path containing the ZIP files.\n\""set strTable(REGISTRATION_WARN_1) \ "This CD-ROM does not require an installation key. Click the \"Next\"\ button to continue the installation."set strTable(REGISTRATION_WARN_2) \ "You entered a key that was not created for this CD-ROM. Please verify\ that you are using the appropriate key. If this problem persists, contact\ Wind River Systems Sales department for help."set strTable(REGISTRATION_WARN_3) \ "The installation key you entered is meant for other vendor's CD-ROM.\ Please contact the vendor who issued the CD-ROM for a proper key."set strTable(REGISTRATION_WARN_4) \ "This CD-ROM does not require an installation key. Click the \"Next\"\ button to continue the installation."set strTable(REGISTRATION_WARN_4_TEXT) \ "This CD-ROM does not require an installation key. Click the \"Next\"\n\ button to continue the installation."set strTable(REGISTRATION_WARN_5) \ "format %s \"Can\'t initiate SETUP: \[lindex \$args 0\]. Please correct\ the problem then run SETUP again, exit SETUP when prompted.\""set strTable(REGISTRATION_WARN_6) \ "The installation key you entered is invalid - please re-check it.\ Note that the key must be entered exactly as shown, including\ capitalization and dashes."set strTable(REGISTRATION_WARN_7) \ "Please enter the requested information."# DELETE? no longer usedset strTable(4030_NO_ZIP_FILE) \ "format %s \"SETUP cannot find the ZIP files for installing\ \[cdromDescGet\] in the default directory.\n\n\ Please type the root of the\ path containing the ZIP files.\n\nClick the\ <Browse> button to choose the directory interactively.\""
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -