السلام عليكم ورحمة الله وبركاته
أقدم لكم
دالة معرفة حصرية لمعرفة الرقم التسلسلي للوحة الأم MotherBoard Serial Number ، وقد تفيد الدالة في أنه يمكن استخدامها في ربطها بفتح المصنف كنوع من أنواع الحماية.
استخدام الدالة :
ويمكن استخدامها من خلال ورقة العمل أو من خلال إجراء فرعي آخر.
بالنسبة لورقة العمل في أي خلية ضع المعادلة التالية
CODE
=MBSerialNumber()
وأخيراً إليكم الدالة المعرفة UDF التي تستخرج الرقم التسلسلي للوحة الأم
CODE
Function MBSerialNumber(Optional strComputer As String = ".") As String
Dim v As Variant
Dim vName As Variant
Dim vUUID As Variant
With GetObject("winmgmts:" & strComputer & "rootcimv2")
For Each v In .ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", , 48)
vName = v.Name
vUUID = v.UUID
Next v
End With
MBSerialNumber = vName & ", " & vUUID
End Function
الاستفادة العملية من الدالة المعرفة :
يمكن بعد وضع المعادلة في الخلية A1 مثلاً والحصول على الرقم التسلسلي للوحة الأم ، يمكن أن تقوم بنسخ محتوى الخلية ثم تضع السيريال في الكود التالي والذي يوضع في حدث المصنف ، ويقوم الكود بمقارنة الرقم التسلسلي الذي في الكود بالرقم التسلسلي للوحة الأم لديك فإذا كان نفس الرقم يتم فتح المصنف ، وإلا يغلق المصنف (وهذا أحد وسائل الحماية للمصنف بحيث لا يستطيع أحد نقل الملف إلى جهاز آخر أي لن يعمل الملف إلا على جهازك فقط)
CODE
Private Sub Workbook_Open()
Dim strMB As String
'Put Your MotherBoard Serial
strMB = "G41MT-S2PT, 00000000-0000-0000-0000-50E5498D43DB"
If MBSerialNumber <> strMB Then
MsgBox ("Data Security Failure. This Workbook Will Close")
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
End Sub
إعداد وتقديم / ياسر خليل أبو البراء