السلام عليكم ورحمة الله وبركاته ،،
قمت بعمل حماية لمشروعي بطريقة سهلة ومبسطة
ولا أعتقد أن هذه الطريقة تخفى على المحترفين بهذا المنتدى الرائع
لكني أحببت أن أعرضه لكي يستفيد منه باقي الأعضاء
كما أتمنى أن تعطونا ملاحظاتكم وآرائكم حول نوع هذه الحماية..
بسم الله نبدأ...
الحماية التي قمت بصنعها متعلقة بالعبارتين التاليتين:
Savesetting
ووظيفتها تخزين قيمة العنصر الموجود في الفورم داخل الرجيستري الخاص بالويندوز
مثال:
إذا قمت بوضع مربع نص غير مرتبط بجدول داخل الفورم
ثم قمت بكتابة مثلا "12345" ثم أغلقت الفورم
فإن هي القيمة سوف تخزن داخل الرجيستري الخاص بالويندوز
ولكي أستدعيها مرة أخرى داخل الفورم
استخدم العبارة
Getsetting
ووظيفتها استدعاء قيمة العنصر الموجود داخل الرجيستري الخاص بالويندوز لعرضها في الفورم
يعني كلما فتحت الفورم سأجد الرقم "12345" موجود بمربع النص الغير منضم
وعندما أقوم بتغييره من خلال الفورم فإنه يتغير
سوف نوضح طريقة وضع هذين العبارتين فيما بعد.
وبعد هذا الشرح أريد أن استخدم هذين العبارتين لحماية مشروعي ...... كيف ؟ B)
أصنع فورم ولنسمه مثل "رقم المنتج"
نضع فيه مربع نص نسمه أيضا "رقم المنتج"
ومقابله زر أمر "موافق"
عند حدث "عند الإغلاق" في الفورم نضع الكود التالي
SaveSetting "db1", "رقم المنتج", "رقم_المنتج", رقم_المنتج
وبهذا قمنا بحفظ القيمة التي إدرجت في مربع النص في الرجيستري الخاص بالويندوز
وعند حدث "عند الفتح" في الفورم نضع الكود التالي
GetSetting ("db1", "رقم المنتج", "رقم_المنتج", رقم_المنتج")وبهذ ا نقوم بوضع القيمة التي في الرجيستري الخاص بالويندوز داخل مربع النص"رقم المنتج"
نقوم بتحديد رقم منتج وليكن
12345
عند حدث "عند النقر" الخاص بزر الأمر "موافق" نضع الكود التالي
if رقم_المنتج <> 12345 then msgbox "رقم المنتج خاطئ يرجى المحاولة مرة أخرى"
وعند حدث "عند الفتح" في الفورم نضع الكود التالي
if رقم_المنتج = 12345 then DoCmd.Close DoCmd.OpenForm "اسم الفورم المراد فتحه بعد فورم رقم المنتج"
اغلق المشروع وافتحه مرة أخرى
ستجد أن فورم رقم المنتج لن يفتح
سيفتح الفورم الرئيسي مباشرة
وبذلك تستطيع أن تحمي مشروعك من أن يتسرب هنا وهناك
ولو قمت بنقل الفورم ووضعه في جهاز آخر فلن يعمل المشروع إلا إذا عرفت رقم المنتج
أرفق لكم المف
وأرجو أن أرى أرائكم

