授权源码:
Imports ArmDot.Client
<VirtualizeCode()>
Public Class Form1
Public Function GetMachineCode() As String
Return Api.GetCurrentMachineHardwareId(Api.Hardware.CPU Or Api.Hardware.Motherboard)
End Function
<VirtualizeCode()>
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim userKey As String = TextBox2.Text
Api.PutKey(userKey)
Dim state As Integer = Api.GetLicenseState()
If state = Api.LicenseKeyState.Valid Then
Dim userName As String = Api.GetUserName()
Dim expireDate As DateTime? = Api.GetExpirationDate()
MessageBox.Show("注册成功!欢迎:" & userName, "授权成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
Dim frm2 As New Success()
If expireDate.HasValue Then
frm2.Label1.Text = "到期时间:" & expireDate.Value.ToString("yyyy-MM-dd")
Else
frm2.Label1.Text = "到期时间:永久授权"
End If
frm2.Show()
Me.Hide()
' ==================================================
ElseIf state = Api.LicenseKeyState.Expired Then
MessageBox.Show("您的授权码已过期!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning)
ElseIf state = Api.LicenseKeyState.BadHardwareId Then
MessageBox.Show("此授权码与当前电脑硬件不匹配!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
MessageBox.Show("无效的授权码!错误代码:" & state.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub
<VirtualizeCode()>
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TextBox1.Text = GetMachineCode()
End Sub
End Class
其次,需要在AssemblyInfo.vb文件中添加:
Imports ArmDot.Client
<Assembly: ObfuscateNames()> ' 类名、变量名全变乱码
<Assembly: HideStrings()> ' 明文字符串全部加密
<Assembly: ObfuscateControlFlow()> ' 正常逻辑流全部打碎成面条代码
<Assembly: ProtectEmbeddedResources()> ' 保护所有内置的资源文件不被白嫖