[Visual Basic] Cách tạo chương trình bản quyền trong Visual Basic

Xin chào các bạn, đôi khi nếu chúng ta tạo một ứng dụng, chúng tôi chắc chắn muốn bảo vệ nó khỏi những kẻ không tặc. Trong bài viết này tôi sẽ thảo luận về cách tạo chương trình kích hoạt bằng cách đọc mã bộ xử lý trên thiết bị được sử dụng, sau đó thực hiện quy trình mã hóa.


Đầu tiên hãy mở Visual Studio và tạo một dự án mới, sau đó thiết kế biểu mẫu như bên dưới


Bây giờ, hãy quay lại Form1 và thêm thư viện System.Management. Nhấp chuột phải vào dự án và chọn Thêm tham chiếu, nhấp vào Tab .NET sau đó cuộn xuống cho đến khi bạn tìm thấy System.Management và nhấp vào OK


Bây giờ, đi vào mã và khai báo một số biến toàn cục cần thiết
Public Class Form1
Dim Win32MnClass As System.Management.ManagementClass
Dim processors As System.Management.ManagementObjectCollection
Dim Enkrip, Output, Inputan, hasilenkripsi, prosesor As String
Dim Panjang_Input As Integer
End Class

Sau đó, chúng tôi sẽ đọc mã bộ xử lý trên thiết bị chúng tôi sử dụng sau đó chúng tôi hiển thị nó vào Textbox1.
Double-click Form1 và nhập mã sau vào Form_Load
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load   
Win32MnClass = New System.Management.ManagementClass("Win32_Processor")
processors = Win32MnClass.GetInstances()
For Each processor As System.Management.ManagementObject In processors
prosesor = (processor("ProcessorID").ToString())
TextBox1.Text = prosesor
Next
End Sub

Và đồng thời, chương trình sẽ phát hiện xem thiết bị được sử dụng đã được kích hoạt hay chưa. Nếu không, chương trình sẽ hiển thị một thông báo cảnh báo và ở lại Form1, nếu có, Form1 sẽ bị ẩn và Form2 sẽ xuất hiện.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Win32MnClass = New System.Management.ManagementClass("Win32_Processor")
processors = Win32MnClass.GetInstances()
For Each processor As System.Management.ManagementObject In processors
prosesor = (processor("ProcessorID").ToString())
TextBox1.Text = prosesor
Next


Inputan = prosesor
Panjang_Input = Len(Inputan)

For i = 1 To Panjang_Input
Enkrip = Mid(Inputan, i, 1)
Enkrip = Asc(Enkrip)
Enkrip = (Enkrip + 20) - 43
Enkrip = Chr(Enkrip)
Output = Output & Enkrip
Next i
hasilenkripsi = Output

If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\" + hasilenkripsi, "Andi", "Aspin") Is Nothing Then

MessageBox.Show("Mã kích hoạt không được phát hiện", "Warning !!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
Me.Hide()
Form2.Timer1.Enabled = False
Form2.ShowDialog()
End If

End Sub

GHI CHÚ

một số mã bổ sung ở trên phục vụ cho quá trình mã hóa của mã bộ xử lý, sau đó được lưu trữ vào biến hasilenkripsi.

sau đó, giá trị của biến hasilenkripsi sẽ được lưu trữ trong Windows Registry Editor (Regedit) trong thư mục HKEY_CURRENT_USER.

Bây giờ, double-click Button 2 và nhập mã sau đây, để người dùng có thể bỏ qua quá trình kích hoạt và nhập vào Form2 nhưng trong một thời gian nhất định.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
Me.Visible = False
Form2.ShowDialog()
End Sub

Sau đó, bấm đúp vào Nút 1 và nhập mã sau đây, để khớp xem mã kích hoạt được nhập trong Textbox2 có bằng giá trị của biến hasilenkripsi hay không. Nếu thích hợp, thì Form1 sẽ bị ẩn và Form2 sẽ xuất hiện mà không giới hạn thời gian, nếu không nó sẽ hiển thị một thông báo cảnh báo.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox2.Text = hasilenkripsi Then
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\" + hasilenkripsi, "Andi", "Aspin")
MessageBox.Show("Mã kích hoạt chính xác", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.Visible = False
Form2.Timer1.Enabled = False
Form2.ShowDialog()
Else
MsgBox("Mã kích hoạt không chính xác", MsgBoxStyle.Exclamation)
End If
End Sub

Và cuối cùng, mở Form2 và thay đổi các thuộc tính Timer1 properties to Enabled : True, Sau đó bấm đúp vào Timer1 và nhập mã sau đây.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick   
Static iCount As Integer
If iCount = 50 Then
iCount = 0
Me.Dispose()
Form1.Dispose()
Else
iCount = iCount + 1
End If
End Sub

GHI CHÚ

Đoạn mã trên hoạt động nếu Timer1 được bật: Đúng thì Form2 chỉ có thể xuất hiện trong 5 giây, Nếu Timer1 được bật: Sai thì Form2 sẽ xuất hiện mà không giới hạn thời gian.

Bạn có thể thay đổi 5 giây thành 10 giây (ví dụ) bằng cách thay đổi 50 thành 100.

VIDEO DEMO


DEMO TOOLS

DOWNLOAD DEMO

Bình luận để nhận mật khẩu download.

Chúc các bạn thành công.