اعزائي الكرام في هذا المنتدى المبارك السلام عليكم ورحمة الله وبركاته بناء على رغبة الكثير من الاعضاء في معرفة طريقة حماية قاعدة البيانات برقم الهارد دسك فسنبدأ معا خطوه خطوه حتى يتمكن الجميع من فهم آلية طريقة الحماية ولن ابخل على اي شخص بأي معلومة مهما كانت في هذا الموضوع وإن شاء الله ان اصل بكم الى الاحتراف في هذا الموضوع وهذا بجهودكم وتفاعلكم معنا فعلى بركة الله نبدأ سوف اقوم بتقسيم الموضوع الى ثلاثة اقسام القسم الاول : كيف تتعرف على رقم الهارد دسك الخاص بك او الذي سوف تضع عليه قاعدة البيانات وتتم الحماية بواسطة الهارد دسك نفسه ومن ثم سوف نتعرف على الفرق بين الارقام العشرية والارقام السداسية العشرية ولن يطول بنا المقام فيها ولكن للمعلومية فقط وسيوضع مثالين لكل منهم لنعرف الفرق بين الارقام واخيرا سأضع الاكواد الخاصه بها . القسم الثاني : سوف نزيد جرعة المعلومات وسنضيف تعليمات جديده الى الاكود السابقه وكلها عباره عن نماذج مفتوحه للجميع يمكن الاطلاع عليها وسنقوم بالنقاش والشرح لكل تعليمه اضافية للكود السابق القسم الثالث : حماية جميع الوحدات النمطية برقم سري والغاء تفعيل مفتاح الشفت بواسطة الكود ثم عملية تشفير قاعدة البيانات كلها وزيادة في التعقيد سنجعلها بسيغة MDE فعلى بركة الله نبدأ القسم الاول : يمكنك التعرف على رقم الهارد دسك من خلال التالي 1. اذهب الى ابدأ 2. اختر تشغيل 3. اكتب في الحقل العبارة التالية CMD.EXE 4. سيظهر لك موجه الدوس ذو الشاشة السوداء في نهاية العبارة التي تراها اكتب \ CD يعني اكتب C ثم D ثم السلاش المائل لليسار وهي عبارة معناها تغيير المجلد Change Dirctory 5. اضغط انتر من لوحة المفاتيح 6. سترى محث المشيرة قد اصبح \: C 7. اكتب الان الكلمة التالية VOL وتعني قيمة او رقم الهاردسك وانظر لرقم الهارد دسك الخاص بك انظر الصورة هذا الرقم السداسي العشري خاص بجهازي وطبعا يختلف من جهاز الى اخر 9. احفظ رقم الهارد دسك الخاص بك في ورقه فسوف تحتاجه كثيرا هذا الرقم هو رقم الهيكسا ديسمل اي السداسي العشري والذي سوف نقوم بتحويله في قاعدة البيانات فقط بالكود الى رقم عشري هنا سوف ارفق ثلاثة امثله للمطابقه بين الرقمين ومن اجل التأكد ان الوضع صحيح افتح هذا الرابط بعد ان تحصل على رقم الهارد دسك سواء بالـ Hexadecimal او بالـ decimal تحويل من عشري الى سداسي عشري الى باينري الاكواد الخاصة بمعرفة السيريال نمبر كنت اتمنى في المشاركه السابقة للاخ عبدالله وفتى الوادي وبقية الاعضاء انهم بحثوا في المنتدى ففيه الجواب الشافي لهذا الموضوع والروابط هي كود الاستاذ مهند عبادي http://www.arabteam2000-forum.com/index.ph...ndpost&p=214701 كود الاستاذ رضا عقيل وتطوير ابن مسقط http://www.arabteam2000-forum.com/index.ph...ndpost&p=122787 كود المبرمج 2003
' لمعرفة السيريال نمبر الخاص بالهاردسك Dim obj_FSO As Object, obj_Drive As Object Set obj_FSO = CreateObject("Scripting.FileSystemObject") Set obj_Drive = obj_FSO.GetDrive("c:\") 'MsgBox obj_Drive.SerialNumber SerialNumber = obj_Drive.SerialNumber Set obj_FSO = Nothing Set obj_Drive = NothingEnd Sub
'كود زهره رقم 1'انشئ وحده نمطية جديده وضع فيها هذا الكود'Insert this code to the module :Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, _lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _nFileSystemNameSize As Long) As Long'ضع هذا الكود في الوحدة النمطية للنموذج'Insert the following code to your form:Function GetSerialNumber(strDrive As String) As LongDim SerialNum As LongDim res As LongDim Temp1 As StringDim Temp2 As StringTemp1 = String$(255, Chr$(0))Temp2 = String$(255, Chr$(0))res = GetVolumeInformation(strDrive, Temp1, _Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))GetSerialNumber = SerialNumEnd Function'انشئ زر أمر في النموذج واعطه اسم '(Command1)'وضع هذا الكود في حدث عند النقرPrivate Sub Command1_Click()'Replace 'c:\' with the drive you want to find his serial numberCall MsgBox(GetSerialNumber("c:\"))End Sub
'كود زهره رقم 2'قم بإنشاء وحده نمطية جديده وضع فيها هذا الكودPrivate Declare Function GetVolumeInformation Lib _"kernel32.dll" Alias "GetVolumeInformationA" (ByVal _lpRootPathName As String, ByVal lpVolumeNameBuffer As _String, ByVal nVolumeNameSize As Integer, _lpVolumeSerialNumber As Long, lpMaximumComponentLength _As Long, lpFileSystemFlags As Long, ByVal _lpFileSystemNameBuffer As String, ByVal _nFileSystemNameSize As Long) As Long'ضع هذا الكود في النموذج Function GetSerialNumber(strDrive As String) As Long Dim SerialNum As Long Dim Res As Long Dim Temp1 As String Dim Temp2 As String Temp1 = String$(255, Chr$(0)) Temp2 = String$(255, Chr$(0)) Res = GetVolumeInformation(strDrive, Temp1, _ Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2)) GetSerialNumber = SerialNumEnd Function'ضع هذا الكود في حدث عند التحميل للنموذجPrivate Sub Form_Load()MsgBox GetSerialNumber("C:\") End Sub