日期:2013-02-04  浏览次数:21195 次

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("HKLM\SOFTWARE\asong\wjdh\ProductId")
      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