一端关于软件序列好的代码,比较简单,不过有值得借鉴的地方
发表于:2007-06-30来源:作者:点击数:
标签:
Function IfIsSerial() Dim oWsh Dim strSerial Dim arrSerial Dim strChar Dim idx Dim isummary on error resume next set WshShell = Server.CreateObject(WScript.Shell) strSerial= WshShell.RegRead(HKLMSOFTWAREasongwjdhProductId) set WshShell = no
Function IfIsSerial()
Dim oWsh
Dim strSerial
Dim arrSerial
Dim strChar
Dim idx
Dim isummary
on error resume next
set WshShell = Server.CreateObject("WScript.Shell")
strSerial = WshShell.RegRead("HKLMSOFTWAREasongwjdhProductId")
set WshShell = nothing
if len(strSerial)<>23 then
IfIsSerial = false
exit function
end if
arrSerial = split(strSerial,"-")
if (ubound(arrSerial)-lBound(arrSerial))<>3 then
IfIsSerial = false
exit function
end if
isummary = 0
strSerial = arrSerial(0)
idx = 1
Do While idx <= 5
strChar = Mid(strSerial, idx, 1)
isummary = isummary + (Asc(strChar) * 4)
idx = idx + 1
Loop
strSerial = arrSerial(1)
idx = 1
Do While idx <= 5
strChar = Mid(strSerial, idx, 1)
isummary = isummary + Asc(strChar) * 3
idx = idx + 1
Loop
strSerial = arrSerial(2)
idx = 1
Do While idx <= 5
strChar = Mid(strSerial, idx, 1)
isummary = isummary + Asc(strChar) * 2
idx = idx + 1
Loop
strSerial = arrSerial(3)
idx = 1
Do While idx <= 5
strChar = Mid(strSerial, idx, 1)
isummary = isummary + Asc(strChar)
idx = idx + 1
Loop
If isummary <> 3364 Then
IfIsSerial = False
Else
IfIsSerial = True
End If
End Function
原文转自:http://www.ltesting.net