📄 licw32.tcl
字号:
# LICW32.TCL - UITcl script for Windows License Installation
#
# Copyright 1998 Wind River Systems, Inc.
#
# modification history
# --------------------
# 01c,22jul98,tcy moved license messages from MESSAGES.TCL
# 01b,22jul98,tcy moved licenseHomeDirGet/Set () from LICW32.TCL
# 01a,14jul98,tcy moved from INSTW32.TCL
###########################################################################
proc pageCreate(licenseChoice) {} {
global ctrlVals
global setupVals
set setupVals(licComp) ""
set ctrlVals(pageList) $ctrlVals(pageListBack)
set ctrlVals(volatileFrm) [list \
[list label -name msg1 \
-title [strTableGet 1290_LICENSE_CHOICE] \
-x 100 -y 10 -w 187 -h 16] \
[list list -name listCtrl \
-x 100 -y 32 -w 150 -h 32] \
[list label -name msg2 \
-title [strTableGet 1291_LICENSE_CHOICE] \
-x 100 -y 80 -w 205 -h 8] \
[list choice -name remote \
-title [strTableGet 1300_LICENSE_CHOICE_0] \
-newgroup -auto \
-callback {onLicChoice remote} \
-x 110 -y 92 -w 185 -h 12] \
[list choice -name haveKey \
-title [strTableGet 1300_LICENSE_CHOICE_1] \
-auto \
-callback {onLicChoice haveKey} \
-x 110 -y 103 -w 185 -h 12] \
[list choice -name email \
-title [strTableGet 1310_LICENSE_CHOICE_2] \
-auto \
-callback {onLicChoice email} \
-x 110 -y 114 -w 185 -h 12] \
[list choice -name call \
-title [strTableGet 1320_LICENSE_CHOICE_3] \
-auto \
-callback {onLicChoice call} \
-x 110 -y 125 -w 185 -h 12] \
]
set w [dlgFrmCreate [strTableGet 1520_TITLE_LICENSE_CHOICE]]
foreach featureId [cdInfoGet featureIdList] {
lappend setupVals(licComp) "[featureDescGet $featureId]"
}
controlValuesSet $w.listCtrl $setupVals(licComp)
controlValuesSet $w.$setupVals(licAction) 1
controlValuesSet $ctrlVals(mainWindow).nextButt "&Next >"
}
proc pageProcess(licenseChoice) {} {
global setupVals
if ![catch {genHostCode [info host]} retVal] {
set setupVals(hostId) $retVal
} {
set setupVals(hostId) ""
uninstLog setupLog "\tFailed to detect HostId: $retVal"
}
set setupVals(licenseNum) [setupLicenseNumGet]
switch $setupVals(licAction) {
haveKey {
pageRemove licEmail
pageRemove licCall
pageRemove remoteLicenseHost
}
email {
pageRemove licCall
pageRemove remoteLicenseHost
}
call {
pageRemove licEmail
pageRemove remoteLicenseHost
}
remote {
pageRemove licEmail
pageRemove licCall
pageRemove licenseKey
}
manual {
pageRemove licEmail
pageRemove licCall
pageRemove licenseKey
pageRemove remoteLicenseHost
}
}
return 1
}
proc pageCreate(licenseKey) {} {
global ctrlVals
global setupVals
set ctrlVals(volatileFrm) [list \
[list label -name msg1 \
-title [strTableGet 1260_LICENSE_KEY \
$setupVals(hostName)] \
-x 100 -y 10 -w 205 -h 25] \
[list label -name msg2 -title "&License Key" \
-x 100 -y 37 -w 85 -h 10] \
[list text -name licenseKeyText \
-x 100 -y 49 -w 150 -h 12] \
[list list -name licList \
-callback keyInfoUpdate \
-x 100 -y 63 -w 150 -h 38] \
[list group -name licInfoGroup \
-title "Key Information" \
-x 100 -y 106 -w 150 -h 64] \
[list button -name add \
-title "&Add" \
-callback onAddLic \
-x 265 -y 49 \
-w 40 -h 12] \
[list button -name remove \
-title "&Remove" \
-callback onRemoveLic \
-x 265 -y 63 \
-w 40 -h 12] \
]
set x0 107
set y0 116
set txtList {"Feature Id:" "Feature Name:" "Licenses:" \
"Start Date:" "Expire Date:"}
set x1 [expr $x0 + 50]
set i 1
foreach header $txtList {
lappend ctrlVals(volatileFrm) [list label -name $header \
-title $header \
-x "$x0" -y "$y0" \
-w 47 -h 10]
lappend ctrlVals(volatileFrm) [list label -name "ctrl$i" \
-title "" \
-x "$x1" -y "$y0" \
-w 90 -h 10]
incr y0 10
incr i
}
set w [dlgFrmCreate [strTableGet 1510_TITLE_LICENSE_KEY]]
controlValuesSet $ctrlVals(mainWindow).licenseKeyText \
"$setupVals(licenseKey)"
controlValuesSet $ctrlVals(mainWindow).licList \
$setupVals(licenseKeyList)
controlValuesSet $ctrlVals(mainWindow).nextButt "&Next >"
controlFocusSet $ctrlVals(mainWindow).licenseKeyText
}
proc pageProcess(licenseKey) {} {
global setupVals
global ctrlVals
set retVal 0
set exitMsg [strTableGet 1270_LICENSE_KEY_ERROR]
if {[llength $setupVals(licenseKeyList)] != 0} {
if {![file isdirectory [licenseHomeDirGet]]} {
file mkdir [licenseHomeDirGet]
}
beginWaitCursor
# copy over the license files
licenseFilesCopy
# create the license file
set binDir "[destDirGet]\\host\\[windHostTypeGet]\\bin"
foreach key $setupVals(licenseKeyList) {
if [catch {putKeyfile [join $key ""] \
[info host] \
[licenseHomeDirGet]} result] {
uninstLog setup \
"\t[strTableGet 1280_LICENSE_KEY_ERROR_1 $result]"
messageBox [strTableGet 1280_LICENSE_KEY_ERROR_1 $result]
endWaitCursor
return 0
}
}
# install Wind License Manager as a service on NT, in the \
# startup group on 95. Start the server if it is not already \
# running
exitMsgSet [strTableGet 1261_LICENSE_KEY_FINISH_OK]
set wlmdPath [systemDirGet]\\WLMD.EXE
if {$ctrlVals(NT) && ($setupVals(isWlmdRunning) != 1)} {
set exePath "[systemDirGet]\\WLMD.EXE"
set licServiceName "WindLM"
if {![catch {setupServiceInstall $licServiceName $wlmdPath ""}\
error]} {
uninstLog resource "service\t$licServiceName"
}
catch {setupServiceStart $licServiceName} error
} elseif {! $ctrlVals(NT)} {
set exeDir "[setupWinDirGet]\\system"
itemCreateLog Startup WindLM $wlmdPath [systemDirGet] \
$ctrlVals(admin)
if {$setupVals(isWlmdRunning) != 1} {
if {[catch {processCreate -hidden $wlmdPath \
[licenseHomeDirGet]} error]} {
exitMsgSet [strTableGet 1262_LICENSE_KEY_FINISH_BAD]
}
}
}
windowShow $ctrlVals(mainWindow) 0
set retVal 1
} {
messageBox [strTableGet 1270_LICENSE_KEY_ERROR]
set retVal 0
}
endWaitCursor
return $retVal
}
proc pageCreate(licEmail) {} {
global setupVals
global ctrlVals
set ctrlVals(volatileFrm) [list \
[list label -name msg \
-title [strTableGet 1330_LICENSE_MAIL] \
-x 100 -y 10 -w 205 -h 24] \
[list text -name licenseInfo \
-multiline -hscroll \
-vscroll -readonly \
-x 100 -y 40 -w 205 -h 130] \
]
set mailMsg "[strTableGet 1340_LICENSE_MAIL_HEADER_LINE1]\
\r\n\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE2]\
\r\n\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE3 [userNameGet]]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE4 [companyNameGet]]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE5a [instKeyGet]]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE6 \
$setupVals(licenseNum)]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE7 \
$setupVals(hostName)]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE8 \
$setupVals(hostId)]\
\r\n\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE9]\
\r\n\r\n"
foreach featureId [cdInfoGet featureIdList] {
append mailMsg "[featureDescGet $featureId] (id = $featureId)\r\n"
}
set setupVals(mailMsg) $mailMsg
set w [dlgFrmCreate [strTableGet 1530_TITLE_LICENSE_MAIL]]
controlValuesSet $w.licenseInfo "$setupVals(mailMsg)"
}
proc pageProcess(licEmail) {} {
global setupVals
global ctrlVals
set setupVals(licAction) haveKey
set ctrlVals(pageList) $ctrlVals(pageListBack)
set ctrlVals(currPage) folderSelect
return [mailSend]
}
proc pageCreate(licCall) {} {
global setupVals
global ctrlVals
set ctrlVals(volatileFrm) [list \
[list label -name msg \
-title [strTableGet 1350_LICENSE_CALL] \
-x 100 -y 10 -w 205 -h 24] \
[list text -name callInfo \
-multiline -hscroll -vscroll \
-readonly \
-x 100 -y 48 -w 205 -h 120] \
]
set w [dlgFrmCreate [strTableGet 1540_TITLE_LICENSE_CALL]]
set callMsg "[strTableGet 1340_LICENSE_MAIL_HEADER_LINE7 \
$setupVals(hostName)]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE8 \
$setupVals(hostId)]\
\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE6 \
$setupVals(licenseNum)]\
\r\n\r\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE9]\
\r\n\r\n"
foreach featureId [cdInfoGet featureIdList] {
append callMsg "[featureDescGet $featureId] (id = $featureId)\r\n"
}
controlValuesSet $w.callInfo $callMsg
}
proc pageProcess(licCall) {} {
global setupVals
global ctrlVals
set setupVals(licAction) haveKey
set ctrlVals(pageList) $ctrlVals(pageListBack)
set ctrlVals(currPage) folderSelect
return 1
}
proc pageCreate(remoteLicenseHost) {} {
global ctrlVals
global setupVals
set msg0 [strTableGet 1353_LICENSE_REMOTE]
set ctrlVals(volatileFrm) [list \
[list label -name msg0 -title $msg0 \
-x 100 -y 10 -w 205 -h 64] \
[list label -name msg1 -title "Host Name:" \
-x 100 -y 94 -w 40 -h 10] \
[list text -name remoteLicHost \
-x 150 -y 92 -w 148 -h 13] \
]
set w [dlgFrmCreate [strTableGet 1561_TITLE_LICENSE_REMOTE]]
controlValuesSet $w.remoteLicHost [windLmHostValueRead]
controlFocusSet $w.remoteLicHost
}
proc pageProcess(remoteLicenseHost) {} {
global ctrlVals
global setupVals
set retVal 1
beginWaitCursor
set setupVals(licenseHost) \
[controlValuesGet $ctrlVals(mainWindow).remoteLicHost]
if ![pingServer $setupVals(licenseHost)] {
messageBox "[strTableGet 1357_LICENSE_REMOTE_FAIL\
$setupVals(licenseHost)]"
endWaitCursor
return 0
}
if {![regexp {^[ ]*$} "$setupVals(licenseHost)"]} {
windLmHostValueWrite $setupVals(licenseHost)
exitMsgSet [strTableGet 1354_LICENSE_REMOTE]
} {
messageBox [strTableGet 1072_WARN_1]
set retVal 0
}
endWaitCursor
return $retVal
}
proc pageCreate(licenseFinish) {} {
global setupVals
global ctrlVals
windowShow $ctrlVals(mainWindow) 0
uninstLog setupLog "[cdInfoGet number] SETUP"
uninstLog setupLog [strTableGet 1261_LICENSE]
messageBox -informationico [exitMsgGet]
nextCallback
}
proc pageProcess(licenseFinish) {} {
return 1
}
proc windLmHostValueWrite {value} {
global setupVals
global ctrlVals
set regPath "Software\\$setupVals(WRS)\\$setupVals(prodRegEntry)"
regValueWriteLog HKEY_CURRENT_USER \
$regPath WIND_LMHOST $value noLog
}
proc windLmHostValueRead {} {
global setupVals
global ctrlVals
if ![info exists setupVals(licenseHost)] {
set setupVals(licenseHost) ""
if {![catch {sysRegistryValueRead HKEY_CURRENT_USER \
"Software\\$setupVals(WRS)\\$setupVals(prodRegEntry)" \
WIND_LMHOST} retVal]} {
set setupVals(licenseHost) $retVal
}
}
return $setupVals(licenseHost)
}
proc pageCreate(wlmdDetect) {} {
global ctrlVals
global setupVals
set ctrlVals(volatileFrm) [list \
[list label -name msg0 \
-title [strTableGet 1358_LICENSE_SERVER_DETECT]\
-x 100 -y 10 -w 205 -h 64] \
]
set w [dlgFrmCreate "[strTableGet 1261_LICENSE] Detect"]
nextCallback
}
proc pageProcess(wlmdDetect) {} {
global setupVals ctrlVals
for {set i 0} {$i < 10} {incr i} {
uiEventProcess
}
beginWaitCursor
set setupVals(isWlmdRunning) [pingServer [info host]]
endWaitCursor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -