2017-08-22校验

Const ADDIN_NAME As String = "AddInFunction"
Const SETTING_ITEM As String = "AddInSetting"
Const KEY_NAME As String = "RegisterCpu"
Sub TestRegister()
    Debug.Print IsRegistered
End Sub
Public Function IsRegistered() As Boolean
    Dim CpuID As String
    Dim RegisterInfo As String
    Dim Rng As Range, RngInfo As String
    RegisterInfo = Get_Settings
    If RegisterInfo <> "" Then
        If HasRegisterSheet Then
            Set Rng = ThisWorkbook.Worksheets("Register").Range("IV65536")
            RngInfo = Rng.Text
            If Len(RngInfo) > 0 Then
                If RngInfo = RegisterInfo Then
                    '校验成功
                    IsRegistered = True
                Else
                    IsRegistered = False
                End If
            Else
                IsRegistered = False
            End If
        Else
            IsRegistered = False
        End If
    Else
        If HasRegisterSheet Then
            Set Rng = ThisWorkbook.Worksheets("Register").Range("IV65536")
            RngInfo = Rng.Text
            If Len(RngInfo) > 0 Then
                IsRegistered = False
            Else
                '首次注册,写入注册表
                CpuID = Get_CpuId
                Rng.Value = "'" & CpuID
                Save_Settings CpuID
                IsRegistered = True
            End If
        Else
            IsRegistered = False
        End If
    End If
    Set Rng = Nothing
End Function
Private Function Get_Settings() As String
    Get_Settings = GetSetting(ADDIN_NAME, SETTING_ITEM, KEY_NAME)
End Function
Private Function Save_Settings(ByVal RegInfo As String)
    SaveSetting ADDIN_NAME, SETTING_ITEM, KEY_NAME, RegInfo
End Function
Private Function Get_CpuId() As String
    Dim CpuSet
    Dim OneCpu
    Set CpuSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
    For Each OneCpu In CpuSet
        Get_CpuId = OneCpu.ProcessorId
    Next
End Function
Private Function HasRegisterSheet(Optional SheetName As String = "Register") As Boolean
    Dim HasRegSht As Boolean
    Dim Sht As Worksheet
    HasRegisterSheet = False
    For Each Sht In ThisWorkbook.Worksheets
        If Sht.Name = SheetName Then
            HasRegisterSheet = True
            Exit For
        End If
    Next Sht
End Function

  

转载于:https://www.cnblogs.com/nextseven/p/7411475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值