09-01-19, 09:33 PM
(09-01-19, 04:59 AM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
يمكنك فعل ذلك حتى لو تم التلاعب بتاريخ الجهاز (اذا كانت مشكلتك مع مستخدم بسيط)
الفكرة من الناحية النظرية تتمثل بعدة خطوات و تراعي بعض الشروط
اولاً : الاعتماد على تاريخ الجهاز بشكل كامل فكرة غير مجدية و يمكن ببساطة تجاوزها كما اشار الاخوة الاعضاء
ثانياً :اختيار اماكن تخزين الحقول و تشفيرها يلعب دوراً هاماً في جعل الامر صعباً على المستخدم العادي
ثالثاً : استخدام التسلسل المنطقي في العمليات يعطيك تصور كامل لخطوات العملية و كود نظيف يمكن توظيفه في كل المشاريع
بعد هذه الشروط اطرح عليك الفكرة :
اختار مكان تخزن فيه متغيراتك (تاريخ البداية , تاريخ النهاية,تاريخ اليوم , هل النسخة تجريبية و تنتهي بعد فترة ام لا)
كما اشرت مكان التخزين اجعله بعيد عن العين (في ملف مشفر , او مسجل النظام , او القاعدة اذا كانت محمية)
انا افضل مسجل النظام و في اماكن عميقة و احياناً في عقد بعض تطبيقات Microsoft
بعد تحديد المكان ننشئ الحقول السابقة بداية عمل البرنامج و نسجل بها تاريخ البداية
تاريخ البداية (SD) , تاريخ النهاية (ED) , نسخة تجريبية ام لا (Status)
الحقول كلها نصية
نسجل في الاول (SD) تاريخ اليوم كتاريخ بداية.
نسجل في الثاني (ED) تاريخ البداية + 10 ايام مثلاً.
نسجل في الثالث (ٍStatus) القيمة True للدلالة على ان النسخة تجريبية.
عودة الى النقطة السابقة (ننشئ الحقول السابقة بداية عمل البرنامج) : لكي لا نقع في مغبة اعادة انشائها كل مرة يقلع بها البرنامج
سيتوجب علينا فحص القيم بداخلها فاذا كانت فارغة نعرف انه (هذه اول اقلاعة للبرنامج و نسجل به قيم الحقول) و الا فنحن امام الخطوة التالية .
الخطوة الثانية : فحص قيمة المتغير (Status) اذا كان True فنحن اما نسخة تجريبية , ننتقل الى الخطوة التالية.
الخطوة الثالثة :نقوم بمقارنة الحقل (SD) مع تاريخ الجهاز فاذا وجدنا ان تاريخ اليوم اكبر من الحقل (SD) , نقوم بتسجيل تاريخ اليوم في الحقل (SD) , اما اذا وجد تاريخ اليوم اصغر من الحقل (SD) عندها نعرف انه تم التلاعب بالتاريخ و نعرض رسالة او نخرج من البرنامج
او اي حركة نراها مناسبة.
كل يوم يتم تحديث قيمة الحقل (SD) و صولاً الى قيمة الحقل (ED) .
بعدها يكون لدينا الاجراء المناسب لهذه العملية (اجراء ينهي البرنامج وقد يحذف ملف ما معه او اي شيئ اخر)
اما لتفعيل النسخة بشكل دائم كل ما عليك عمله هو جعل قيمة الحقل Status = False
بالتوفيق
انا ايضا مهتم في الموضوع ان امكنك اخي عمل مشروع صغير ة ارفاقة وشكرا
