一端关于软件序列好的代码,比较简单,不过有值得借鉴的地方

发表于: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