كيف تشغل نسخة واحدة من برنامجك

بسم الله الرحمن الرحيم

 

أحياناً تريد منع تشغيل اكثر من نسخة من برنامجك , وهذا قد يعتمد غالباً على وظيفة البرنامج

فمثلاً لو كان يستهلك قدراً كبيراً من الذاكرة , وتشغيل نسخة أخرى سوف يزيد هذا القدر , فيمكن منع تشغيل أكثر من نسخة من البرنامج

وأيضاً قد تريد منعه من تشغيل أكثر من نسخة من البرنامج , إن لم يكن قد دفع ثمن البرنامج , أو انه يستعمل نسخة Demo أو غير ذلك

 

لذا فكرت في طريقة بسيطة جداً لمنع تشغيل أكثر من نسخة من برنامجك , ولا أقول انها الأفضل

 

الطريقة باختصار تتمثل في وضع قيمة في ملف ما , هذه القيمة تتغير حسب حالة البرنامج , فإن كان البرنامج يعمل تكون قيمة ما , وإن تم إغلاقه (بطريقة معينة) تتغير القيمة

 

طريقة عمل البرنامج :

1- عندما يبدأ بالعمل يتأكد ان القيمة المخزنة هي مثلاً 0 , وتعني ان البرنامج مغلق اصلاً

2- إن كانت القيمة هي 0 , فيحولها إلى 1

3- وإن كانت القيمة هي 1 , فينهي البرنامج

 

يمكنكم تحميل المثال من الرابط التالي :

http://www.4shared.com/file/59617954/8fa73005/How_to_run_one_EXE_Only.html

 

ملاحظات :

يجب توافر المسار :

C:\Temp\101011001101.t

 

مشاكل وعيوب الطريقة :

1- إن تم إغلاق البرنامج من زر X في زاوية نافذة البرنامج , فإن حدث الإغلاق بهذه الطريقة سيتحقق سواء أغلقت النافذة من خلال الزر , أو بأي طريقة أخرى

وهذا فيه مشاكل كثيرة :

فلو وضعنا أمر تحويل القيمة إلى 0 في حدث الإغلاق من زر X , فإنه عند إغلاق البرنامج برمجياً في حالة انه كانت هناك نسخة خرى تعمل منه فإن هذا سيحول القيمة إلى 0 , وبالتالي ومع ان هناك نسخة تعمل بالفعل إلا ان القيمة هي 0 , وسيمكن في هذه الحالة إن يقوم المستخدم بتشغيل نسخة أخرى من البرنامج

 

2- إن تم إنهاء أول نسخة من البرنامج من خلال Ctrl+Alt+Delete فعند محاولة تشغيل البرنامج مجدداً سيغلق مباشرة !

وهذا لأن النسخة الأولى وضعت القيمة 1 , يعني انها تعمل , لكن عند اغلاقها بطريقة Ctrl+Alt+Delete فإنها لم تغير القيمة إلى 0

 

اقتراحات تطويرية :

1- ضع الملف الخاص بالقيمة في مكان صعب الوصول إليه , وليكن في مجلدات النظام

2- غير اسم الملف حتى لا تكون له علاقة باسم برنامج , فلو كان برنامج اسمه XYZ , فلا تسمي الملف XYZ Protect

3- غير صيغة الملف , ولا تبقها *.txt , وإليك كيف تفعل هذا

من القائمة Tools في نافذة مستكشف الويندوز اختر Folder Options , ثم من التبويب View إزل علامة الصح من خانة Hide extensions for known file types

وبعد ذلك قم بإنشاء ملف نصي جديد , ستجد اسمه بالشكل : New Text Document.txt هنا , استبدل txt بأي كلمة أخرى مثلاً t عندها ستظهر رسالة , اختر Yes

4- يمكنك استخدام الريجستري بدلاً من الملفات العادية , وهنا يمكنك تخزين القيمة كـBinary ليصعب فهمها

وهناك كتب تشرح استعمال Registry في دلفي , منها :

http://www.boosla.com/showArticle.php?Sec=Programm&id=84

2 responses to “كيف تشغل نسخة واحدة من برنامجك

  1. السلام عليكم, مبارك عليك المدونة الجديدة, و إن شاء الله تصبح من المدونات المشهورة.

    بالنسبة لتشغل نسخة واحدة من برنامجك, فأفضل طريقة هي فحص وجود Process بنفس الاسم عند تشغيل البرنامج, فإذا كان هناك Process بنفس الاسم يتم الاغلاق و إلا يتم المتابعة.

    لاحظ الرابط التالي:

    http://www.delphitricks.com/source-code/windows/check_if_a_process_is_running.html

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s