هذا الكود يقوم بمنع نسخ قاعدة البيانات عن طريق وضع السيريال نمبر للبرتشن الذي توجد به القاعده ,,,, قمت بتجربة الكود على ويندوز ميلينيوم وجدته يعمل بشكل سليم ,,, ولكن عندما قمت بتجربة الكود على ويندوز اكس بي وجدته لا يعمل ,,,,, فما السبب في انه لا يعمل على اكس بي وما التغيير الذي يجب ان يوضع به لكي يعمل على ويندوز اكس بي ,,,
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" ( _
ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Sub checkserial()
Dim disk As String
Dim serialnum As Long, serial As String
disk = "c:" 'غير الى القرص الذي تريد
RetVal = GetVolumeInformation(disk, NomVolume, Len(NomVolume), _
serialnum, dum, dum, ResStr, Len(ResStr))
'استخراج الرقم التسلسلي
serial = Right(String(8, "0") + Hex$(serialnum), 8)
serial = Left(serial, 4) + "-" + Right$(serial, 4)
If serial = "3E68-1EE7" Or serial = "ضع جهاز آخر" Then
Exit Sub
Else
MsgBox "غير مصرح للعمل على هذا الجهاز"
DoCmd.Quit
End If
End Sub