28-05-19, 03:48 AM
(آخر تعديل لهذه المشاركة : 28-05-19, 10:22 AM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته اخوتي الكرام
هذا برنامج صغير يقوم بجلب ارقام البورد والمعالج والهارد
وفيه التحقق من الهارد والبورد ويمكن اضافة التحقق من رقم المعالج بحيث يصبخ الشرط ثلاثي
كما يمكن تغيير الشروظ حسب الرغبة
---------------------------------
اخوتي هناك بعض من الخطأ في كود التحقق لان البرنامج عملته منذ فترة
ولاحظت الان تلك الهفوات لذلك سأضع الكود كاملا
كود :
Imports System.Management
Public Class Form1
Private Sub Btn_HdNumber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_HdNumber.Click
' جلب رقم الهارد ديسك
Dim hd As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
For Each dvs As ManagementObject In hd.Get()
Dim serial As String = dvs("SerialNumber").ToString
TextBox1.Text = serial.Trim
Next
End Sub
Dim Activat As Boolean
' للتحقق من التفعيل
Private Sub Test_Activation()
Dim HD As String = "W -DXW4E806N6483" ' هذا رقم هاردي
Dim MBR As String = ".6ZH4S3J.CN7016686A0BQC." ' هذا رقم البورد عندي
If TextBox1.Text.Trim <> HD Or TextBox3.Text.Trim <> MBR Then
MsgBox("غير مصرح لك باستخدام البرنامج على هذا الجهاز", MsgBoxStyle.Critical, "تحذير")
Exit Sub
Activat = False
Else
MessageBox.Show("هذه النسخة مرخصة")
Activat = True
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'فحص التفعيل
Call Test_Activation()
'Call Test_Processor()
TextBox4.Text = Activat
End Sub
Private Sub btn_proccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_proccess.Click
Dim MOS_PR As New ManagementObjectSearcher("SELECT * FROM Win32_Processor")
Dim mo_PR As ManagementObject
For Each mo_PR In MOS_PR.Get()
TextBox2.Text = mo_PR("ProcessorId").ToString()
Next
End Sub
'جلب رقم المازربورد
Function GetMotherboardSerialNumber() As String
' نقوم بإنشاء العنصر
' ManagementObjectSearcher
' وهو الذي سوف يقوم باحتواء جملة الاستعلام وبتنفيذها
' لاحظ أنه يمكنك استخدام العلامة
' *
' للحصول على جميع الأعمدة
' Properties
' في الجدول
' Class
' الذي يحوي بيانات الماذربورد وهو
' Win32_BaseBoard
Dim searcher As New ManagementObjectSearcher("SELECT SerialNumber, Product FROM Win32_BaseBoard")
' تنفيذ الأمر
' يحوي العنصر
' ManagementObjectCollection
' جميع البيانات المسترجعة من الاستعلام
' والتي تتمثل في هيئة صفوف
' Objects
Dim information As ManagementObjectCollection = searcher.Get()
Dim serialNumber As String = String.Empty
' المرور على جميع الصفوف
' لأنها ماذربورد واحدة فسوف يكون هناك صف واحد
For Each obj As ManagementObject In information
' الاستعلام عن العمود
' SerialNumber
' إذا لم يحوي بيانات
' يتم استخدام العمود
' Product
' كبديل
If (obj.Properties("SerialNumber").Value.ToString().Trim() <> String.Empty) Then
serialNumber = obj.Properties("SerialNumber").Value.ToString().Trim()
Else
serialNumber = obj.Properties("Product").Value.ToString().Trim()
End If
' لا توجد فائدة للسطر التالي لأنها ماذربورد واحدة
Exit For
Next
' يفضل استخدام الدالة
' Dispose
' لإلغاء العنصر
' ManagementObjectCollection
' من الذاكرة
searcher.Dispose()
Return serialNumber
End Function
Private Sub Btn_Board_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Board.Click
TextBox3.Text = GetMotherboardSerialNumber().Trim
End Sub
End Classاعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
