الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سوال حول امكانية الاكسيس 2000

مغلق
بدأه مسافر في 12 مارس 2001 · 11 رد · 1,053 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحيتي إلى جميع أعضاء المنتدى وأود أن أطرح سوال حول الرقم التسلسلي للقرص الصلب والحماية.

هل يمكنني ان احمي برنامج او ان صح التعبير ملف قاعدة البينات الاكسيس عن طريق الرقم التسلسلي للقرص الصلب الذي يوضع من قبل الشركة المصنعة ويكون مكتوبا على القرص فيزيائيا والذي لايمكن تغيره أبداً)

اذا امكان مثال على ذلك او كتابة الكود

ولكم جزيل الشكر

ولكم تحياتي

#2

يمكنك ذلك لوكن باستخدام ال API فقط ، انا صراحة لم اجرب ذلك من قبل ولكنه ممكن

يمكنك وضع علامات حماية امكانية ، و ذلك اضافة الى رقم القرص الصلب مثلا ليقوم البرنامج بوضع اضافات الى ال registry و ملف في احد فهارس الويندوس ، و امور اخرى متفرقة حيث ان فشل احدها في التحقيق يتوقف البرنامج عن العمل

#3

ممكن بالطبع

يجب معرفة الرقم التسلسلي أولا هذا البرنامج الصغير يساعدك ..

http://wahah.virtualave.net/prog/diskinfo.exe

الخطوة الثانية هي الكود افتح وحده نمطيه جديده وسمها module انسخ هذا الكود :

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

الآن ضع نموذجا في بدء التشغيل .

اكتب الكود التالي في حدث عند الفتح للنموذج :

Private Sub Form_Open(Cancel As Integer)
Call checkserial
End Sub

لتحميل قاعدة بيانات جاهزه لهذا العمل .. اضغط هنا http://wahah.virtualave.net/prog/disk.zip طبعا لتكون هذه الطريقه فعاله يجب تحويل القاعده الى MDE أيضا لا تنسى وضع الرقم التسلسلي في الكود في المكان الصحيح (الرقم الموجود هو لجهازي) لذلك اذا نزلت القاعده المذكوره لن تعمل .. اضغط على الزر shift أثناء الفتح

[عدلت بواسطة ابو لمى ت:13-03-2001 س: 12:56 AM]

#4

السلام عليكم ورحمة الله وبركاته

شكراً لكم جميعن

الاخ ابو لمى / جربة البرنامج و يعمل 100% ولك تحياتي انت والاخ خضر

#5

اخى ابو لمى الوصلات لا تعمل

#6

تم التعديل ...

#7

الأخ أبو لمى

السلام عليكم و رحمة الله

لقد حملت البرنامج (Disk.mdb) وعند تشغيله ظهرت رسالة تقول "غير مصرح للعمل على هذا الجهاز" و الآن كيف يمكننى من تعديل الوحدة النمطية بحيث تقوم بالسؤال عن الإسم و الرقم السري عندهاإن كان الرقم يقع تحت تنسيق معين(a9a A8 AaA 7A0)"مثلا" أو دمج الإسم الأول مع رقم معين لتعطي التصريح في العمل و إلا تخرج الرسالة "غير مصرح للعمل على هذا الجهاز"

أخوكم سعيد

#8

السلام عليكم ورحمة الله وبركاته

اضغط على الزر shift أثناء الفتح

#9

هل يمكن لاكسس ان يأخذ الرقم التسلسلى من تلقاء نفسه دون وبرنامج وسيط

بمعنى انى اضغط على زر يقوم بكتابة الرقم التسلسلى للجهاز الذى تعمل عليه قاعدة البيانات

حتى نتمكن من تعديل قاعدة البيانات

#10
اقتباس
الرسالة الأصلية كتبت بواسطة خضرترزي

عذراً استاذي خضرترزي

بعد اذنك سأتطفل بإضافة شرح اكثر على تعليقك الجميل... للفائدة

باسم الله

بعد الحصول على رقم الهاردسك يمكن معالجته بطريقة معينة بتحويله من شكل رقمي الى اخر ويخزن هذا الرقم في جدول خاص في نفس القاعدة وعند تشغيل البرنامج يقوم البرنامج بقراءة رقم الهاردسك الذي يعمل عليه البرنامج ويتم تحويله بنفس الدالة وبنفس الطريقة التي من خلالها تم الحصول بها على الرقم الذي تم تخزينه في الجدول

وبعد ذلك يتم مطابقة الرقم المخزن مع رقم الهاردسك الذي تم استنتاجه فإن توافقا يتم الدخو وإلا يغلق البرنامج كاملا

عسا انني اوفيت الشرح؟

#11
اقتباس
الرسالة الأصلية كتبت بواسطة خضرترزي

عذراً استاذي خضرترزي

بعد اذنك سأتطفل بإضافة شرح اكثر على تعليقك الجميل... للفائدة

باسم الله

بعد الحصول على رقم الهاردسك يمكن معالجته بطريقة معينة بتحويله من شكل رقمي الى اخر ويخزن هذا الرقم في جدول خاص في نفس القاعدة وعند تشغيل البرنامج يقوم البرنامج بقراءة رقم الهاردسك الذي يعمل عليه البرنامج ويتم تحويله بنفس الدالة وبنفس الطريقة التي من خلالها تم الحصول بها على الرقم الذي تم تخزينه في الجدول

وبعد ذلك يتم مطابقة الرقم المخزن مع رقم الهاردسك الذي تم استنتاجه فإن توافقا يتم الدخو وإلا يغلق البرنامج كاملا

عسا انني اوفيت الشرح؟

#12

الأخ العزيز رؤوف

وفقك الله فى الشرح الجميل ولكن عذرا أخي العزيز هناك الكثير فى المنتدي لا يعرف كيف وأين يضع الكود أو الوحدة النمطية فلذا فالمواضيع المهمة هذه يفضل إدراج مثال للتوضيح أكثر .

أشرف خليل

هذا الموضوع مغلق.

مواضيع مشابهة