تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
منع التشغيل على أكثر من جهاز
#1
تعلمت من الزميل [b]samee119485r[/b] فى موضوع سابق أمرين هامين[SIZE=3]
1-منع تشغيل البرنامج أكثر من عدد محدد من المرات(4 مرات مثلآ)
2-منع تشغيل البرنامج الاعلى جهازواحد(بعد سؤال العميل عن رقم القرص الصلب للجهازالمراد تشغيل البرنامج عليه)

ومن خلال هذين الأمرين حاولت عمل مشروع لمنع تشغيل البرنامج الا جهاز واحد(بدون سؤال العميل عن شئ)

[/SIZE][SIZE=4]وهذا مشروعى مرفق وأطلب منه أو من الأستاذ الكبير/ناجى ابراهيم أو من أى عضو يفهم فى مثل هذه الأمور
المساعدة فى أمرين هامين

1- مراجعة الكود وتصحيح الخطأ الموجود به
2- بعد تصحيح الخطأ كيف أمنع أى انسان من أى تعديل فى قاعدة البيانات النى هى جزء أساسى فى المشروع
أعلم فقط كيف أمنع أى انسان من أى تعديل فى برنامج البيزك (بتحويله الى ملف تنفيذى (بالأمر MAKE .EXE))
ولكن كيف أمنع أى تعديل فى قاعدة البيانات
التى وضعت بها رقم القرص الصلب لأول جهاز يتم عليه تشغيل البرنامج[/SIZE]

ولكم ألف شكر


الملفات المرفقة
.zip   منع التشغيل على &#.zip (الحجم : 16.96 ك ب / التحميلات : 116)
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم

اخي الكريم ما فائده قاعده البينات في المشروع

هل تريد وضع رقم الهارد دسك فيها والنفرض انك تريد ذلك

فتبقا المشكله هيه هيه
ان يجب عليك سؤال العميل عن رقم الهاردسك

قبل ان تعطيه البرنامج لكي تضع رقمه في القاعده


لا تأسفن على غدر الزمان لطالما...رقصت على جثث الأسود كلاب
لا تحسبن برقصها تعلو على أسيادها...تبقى الأسود أسودا والكلاب كلاب
تبقى الأسود مخيفة في أسرها...حتى وإن نبحت عليها كلاب
تموت الأسد في الغابات جوعا... ولحم الضأن تأكله الكــلاب
وعبد قد ينام على حريـــر...وذو نسب مفارشه التــراب
الرد }}}}
تم الشكر بواسطة:
#3
نعم أريد وضع رقم الهارد دسك في قاعده البينات ولكن لن أسأل العميل عن رقم الهاردسك
لن أضعه في قاعده البينات الا اذا كانت Nwork = 0 (أى عند أول مرة لتشغيل البرنامج)
أخزن رقم الHARD DISK الخاص بأول جهاز تم عليه التشغيل الذى حصلت عليه من الNew HDSLN وأتجه للجملة رقم100


PHP كود :
If Nwork "0" Then
 Rem
"الشرط السابق يعنى اذا كانت هذه هى أول مرة لتشغيل البرنامج"
 
txtHARD1 = New HDSLN
Rem
"لاحظ أنه بالجملةالسابقة يتم معرفة رقم الHARD DISK للكمبيوترالذى يتم تشغيل البرنامج عليه الآن ، ولاحظ أيضآأن هذه هى أول مرة لتشغيل البرنامج"

  
Adodc1.Recordset.MoveFirst
  Adodc1
.Refresh
  Adodc1
.Recordset.Fields(1) = txtHARD1
  Adodc1
.Recordset.Update
Rem
"الجمل الأربعة السابقة لتخزين رقم الHARD DISK الذى وجدته فى قاعدة البيانات"
GoTo 100
End 
If 

أما عند تشغيل البرنامج أى مرة بعد ذلك (أى اذا كانت0 [FONT=&amp]≠ [/FONT] Nwork ) فانه يحصل على رقم الHARD DISK الخاص بأول جهاز تم عليه التشغيل من خلال قاعدة البيانات
ويحصل على رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه الآن من خلال الNew HDSLN
ويقارنهما


PHP كود :
txtHARDnew = New HDSLN
 Rem
"لاحظ أنه بالجملة السابقة  يتم معرفة رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه الآن"
 
  
txtHARDold Adodc1.Recordset.Fields(1)
Rem"لاحظ أن  قيمة المتغيرtxtHARDold هو رقم الHARD DISK الخاص بالكمبيوتر الذى تم تشغيل البرنامج عليه أول مرة"
If txtHARDnew <> txtHARDold Then MsgBox "انت غير مخول بستخدام هذا البرنامج الرجاء مراسلة المصنع", , "نأسف"End 
الرد }}}}
تم الشكر بواسطة:
#4
اسلام الكبابى كتب :نعم أريد وضع رقم الهارد دسك في قاعده البينات ولكن لن أسأل العميل عن رقم الهاردسك
لن أضعه في قاعده البينات الا اذا كانت Nwork = 0 (أى عند أول مرة لتشغيل البرنامج)
أخزن رقم الHARD DISK الخاص بأول جهاز تم عليه التشغيل الذى حصلت عليه من الNew HDSLN وأتجه للجملة رقم100


PHP كود :
If Nwork "0" Then
 Rem
"الشرط السابق يعنى اذا كانت هذه هى أول مرة لتشغيل البرنامج"
 
txtHARD1 = New HDSLN
Rem
"لاحظ أنه بالجملةالسابقة يتم معرفة رقم الHARD DISK للكمبيوترالذى يتم تشغيل البرنامج عليه الآن ، ولاحظ أيضآأن هذه هى أول مرة لتشغيل البرنامج"

  
Adodc1.Recordset.MoveFirst
  Adodc1
.Refresh
  Adodc1
.Recordset.Fields(1) = txtHARD1
  Adodc1
.Recordset.Update
Rem
"الجمل الأربعة السابقة لتخزين رقم الHARD DISK الذى وجدته فى قاعدة البيانات"
GoTo 100
End 
If 

أما عند تشغيل البرنامج أى مرة بعد ذلك (أى اذا كانت0 [FONT=&]≠ [/FONT] Nwork ) فانه يحصل على رقم الHARD DISK الخاص بأول جهاز تم عليه التشغيل من خلال قاعدة البيانات
ويحصل على رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه الآن من خلال الNew HDSLN
ويقارنهما


PHP كود :
txtHARDnew = New HDSLN
 Rem
"لاحظ أنه بالجملة السابقة  يتم معرفة رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه الآن"
 
  
txtHARDold Adodc1.Recordset.Fields(1)
Rem"لاحظ أن  قيمة المتغيرtxtHARDold هو رقم الHARD DISK الخاص بالكمبيوتر الذى تم تشغيل البرنامج عليه أول مرة"
If txtHARDnew <> txtHARDold Then MsgBox "انت غير مخول بستخدام هذا البرنامج الرجاء مراسلة المصنع", , "نأسف"End 


اسمحلي،،، طلبك غريب

إذا كان العميل عنده البرنامج قبل التركيب ما راح تستفيد شي، لأنه ممكن يركبه بجهاز آخر وقاعدة البيانات فارغة أصلا.
الرد }}}}
تم الشكر بواسطة:
#5
فيه طريقة شركات البرامج

1: تعطي العميل رقم تفعيل
2: يقوم العميل بتركيب البرنامج.
3: يطلب البرنامج من العميل رقم التفعيل.
4: يقوم البرنامج بالاتصال بالموقع ويرسل له رقم التفعيل ورقم الهاردسك.
5: يقوم الموقع بالبحث عن رقم التفعيل إذا وجده يتأكد من الهاردسك والا فلا يتم التركيب بسبب عدم صحة رقم التفعيل.
6: إذا كان رقم الهاردسك (صفر) يعتبر ان العميل يقوم بالتركيب أول مرة ويقوم بحفظ رقم الهاردسك.
7: إذا كان رقم الهاردسك يوجد فيه رقم يقوم الموقع بالمقارنة بالرقم الي ارسله البرنامج.
8: إذا تطابق يكمل البرنامج التركيب وإلا فلا

انتظر ردك
الرد }}}}
تم الشكر بواسطة:
#6
اخي سلام

انا فاهم عليك ولقد نزلت المثال الذي وضعته

إقتباس :ويحصل على رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه الآن من خلال الNew HDSLN
ويقارنهما

ما الفائده من قاعده البينات

تستطيع ان تتم المقارنه من نفس البرنامج وتستغني عن قاعده البينات

ولنفرض أننا عملنا البرنامج مع قاعده البينات وتم تحميل البرنامج من احد العملاء

طبعا راح تكون قاعده البينات فارفه ويتم تشغيل البرنامج من العميل لأول مره راح يخزن رفم الهاردسك في القاعده

وتم تشغيل البرنامج ثاني مره راح تتم المقارنه

وفي الحاله هاذه راح يتوقف البرنامج الا ان يتم تعريف رقم الهاردسك في البرنامج لكي يشتغل


واضن اننا رجعنا الى انقطه الأساسيه وهيه سؤال العميل عن رقم الهاردسك


#############################################

اخي العزيز
انت تريد التحكم في برنامجك بسماح لبعض من يحصل على هاذا البرنامج ان يستخدمه

وطلبك لا يمكن تحقيقه الا بطريقه واحد لا ثاني لها وهيه

ان طربط برنامجك بقاعده بينات عن طريق سيرفر يعني يتم الاتصال بين برنامجك وقاعدت البينات والوسيط بينهم هوه السيرفر

كما الحال في بعض المواقع عندما يتم التسجيل فيه يقول لك الرجاء نتظار التفعيل

هاذا على ما اضن الذي تريده انت
إقتباس :(بدون سؤال العميل عن شئ)

لان مستحيل تتحكم ببرنامجك بدون وسيط بينك وبين برنامجك

لابد من وسيط

############################################

وان كنت تقصد وضع ارقام هاردسكات معينين يعني لاشخاص معينين تريدهم هم الذين يستخدمون برنامجك

فلا انسحك بوضعهم في قاعدت البينات فتوجد عده طرق

يعني بامكانك عمل مصفوفه بأسماء الهاردسكات التي تريد ان يعمل عليها برنامجك ويتم المقارنه في المصفوفه

فان وجد فيشتغل البرنامج وان لم يوجد فلن يشتغل....

هاذا ان كنت تريد ذلك.........................

وهاذا الذي اعلمه والله اعلم


لا تأسفن على غدر الزمان لطالما...رقصت على جثث الأسود كلاب
لا تحسبن برقصها تعلو على أسيادها...تبقى الأسود أسودا والكلاب كلاب
تبقى الأسود مخيفة في أسرها...حتى وإن نبحت عليها كلاب
تموت الأسد في الغابات جوعا... ولحم الضأن تأكله الكــلاب
وعبد قد ينام على حريـــر...وذو نسب مفارشه التــراب
الرد }}}}
تم الشكر بواسطة:
#7
طريقة جديدة لم يستعملها احد

تجعل برنامجك يقوم بتشغيل برنامج (برنامج 2) آخر انت صنعته فيه ارقام الهارد ديسكات و يقوم بالمقارنة مع رقم هارد ديسك الجهاز و ارقام الهارد ديسك التي تضعها فيه

فان لم يكن الهارد موجودا بطريقة ما يتم ارسال رقم الهارد ديسك العميل ( بناء على رغبة العميل ) فعند تلقي الطلب يقوم صانع البرنامج باضافة ارقام الهارد ديسك الجديدة الى البرنامج2 و يرسلها للعميل على شكل ملف سيت آب يحذف ذلك الملف الاصلي للبرنامج2 و يضيف الملف البرنامج2 الجديد
الرد }}}}
تم الشكر بواسطة:
#8
السلام عليكم

اخي سلام

هاذه اداه من تصميمي وضعتها لك وللعضاء وهيه تقوم بالتصال بقاعده البينات التي على السيرفر وتسجيل العضويه وتنتظر التفعيل

انا وضعتها كمثال ليست للستخدام يعني بعد يومين سوف اقوم بتوقيف عمل الاداه

وان شاء الله سوف اقوم كل ساعه بتفعيل المستخدمين للتجربه

طريقه الاستخدام هيه بعد تحميل المشروع قم بفتحه وتشغيله ولا تفعل شئ

بس انتظر 10 الى 15 ثانيه سوف تخبرك بأتمام التسجيل وإنتظار التفعيل

والخروج من البرنامج وبعد تمام التفعيل سوف تتحقق من التفعيل واذا تفعل سوف تفتح فورم2

ولتصميم مثل هاذه الاداه يجب ان يكون لديك سيرفر ورقم اي بي ثابت ويجب ايضا ان يكون السيرفر متصل بنت دائما لتلقي التسجيل ويكون لديك سرع نت عاليه

ملاحظه::

هاذه الاداه كمثال ليست للستخدام


وتحياتي للجميع


الملفات المرفقة
.rar   التحكم بالمستخ&#15.rar (الحجم : 76.75 ك ب / التحميلات : 91)


لا تأسفن على غدر الزمان لطالما...رقصت على جثث الأسود كلاب
لا تحسبن برقصها تعلو على أسيادها...تبقى الأسود أسودا والكلاب كلاب
تبقى الأسود مخيفة في أسرها...حتى وإن نبحت عليها كلاب
تموت الأسد في الغابات جوعا... ولحم الضأن تأكله الكــلاب
وعبد قد ينام على حريـــر...وذو نسب مفارشه التــراب
الرد }}}}
تم الشكر بواسطة:
#9
الى الزميل/ MSDOS
إقتباس : فيه طريقة شركات البرامج

انتظر ردك
وكيف يتم عمل كل هذه الخطوات ؟
ان كان بامكانك عملها وارفاق البرنامج كاملآ فأرفقه

---------------------------------------
---------------------------------------

الى الزميل/ [b]samee119485r[/b]
إقتباس :ما الفائده من قاعده البينات
تستطيع ان تتم المقارنه من نفس البرنامج وتستغني عن قاعده البينات
كيف ذلك؟ بين من و من تتم المقارنة ؟
بين رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه الآن من خلال الNew HDSLN
وبين
رقم الHARD DISK الخاص بأول جهاز تم عليه التشغيل من خلال قاع[SIZE=3]دة البيانات التى تم تسجيله فيها عند أول [/SIZE]مرة فقط لتشغيل البرنامج (حين كانت Nwork = 0 ) ولن يتغير بعدها أبدآ مهما تم التشغيل بعد ذلك
([SIZE=4]أى أن[/SIZE] قاع[SIZE=3]دة البيانات تحتوى على سجل واحد فقط [/SIZE])
إقتباس :طبعا راح تكون قاعده البينات فارفه ويتم تشغيل البرنامج من العميل لأول مره راح يخزن رفم الهاردسك في القاعده

وتم تشغيل البرنامج ثاني مره راح تتم المقارنه

وفي الحاله هاذه راح يتوقف البرنامج
نعم عندما يتم تشغيل البرنامج من العميل لأول مره راح يخزن رفم الهاردسك في القاعده
ولكن عندما تم تشغيل البرنامج ثاني مره فانه يحصل على رقم الHARD DISK الخاص بالكمبيوتر الذى يتم تشغيل البرنامج عليه هذه المرة الثانية من خلال الNew HDSLN
ثم راح تتم المقارنه بينه وبين الرقم الموجود فى قاع[SIZE=3]دة البيانات التى تم تسجيله فيها [/SIZE]عند أول مرة لتشغيل البرنامج
فان كان التشغيل هذه المرة الثانية على نفس الجهاز فلن يتوقف البرنامج(لأنه سيجد الرقمين متساويين)
وان كان التشغيل هذه المرة الثانية على جهاز آخر راح يتوقف البرنامج(لأنه سيجد الرقمين مختلفين)
وعلى العموم
أنا فى انتظار انتهائك من مراجعة هاذه الاداه التى تحدثت عنها كمثال ليست للستخدام
وارفاقها مع المشروع للستخدام
الرد }}}}
تم الشكر بواسطة:
#10
إقتباس :وعلى العموم
أنا فى انتظار انتهائك من مراجعة هاذه الاداه التى تحدثت عنها كمثال ليست للستخدام
وارفاقها مع المشروع للستخدام

اخي الاداه لقد تم الانتهاء من صنعها وهيه في الرد السابق بعنوان اداه قم بتحميل المشروع لتجربه


وان شاء الله سوف اراجع مثالك واعدل عليه

تحياتي


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  التشغيل التلقائي ابن الشام 6 1,003 05-01-16, 11:53 PM
آخر رد: awidan76
  [سؤال] ارسال رسالة إلى جهاز متصل على نفس الشبكة . Hell Cell 0 527 18-02-15, 01:55 AM
آخر رد: Hell Cell
  هل بالامكان معرفة اسم وعنوان الكائن اثناء التشغيل أبوالعباس 1 419 28-08-13, 02:13 PM
آخر رد: أبوالعباس
  برامج بدء التشغيل asto 3 484 02-06-13, 11:20 PM
آخر رد: asto
  كود التأكد أن هناك عملية قيد التشغيل أو لا hussam.hack 1 336 07-04-13, 03:19 AM
آخر رد: ALBRNS
  تعميم ايقونة البرنامج على نظام التشغيل القناص المحترف 1 434 25-03-13, 12:32 AM
آخر رد: VB_Coder
  كيفية عمل تحميل ملف dll اثناء التشغيل The Phantom 6 782 24-03-13, 05:37 PM
آخر رد: VB_Coder
  طلب كود الغاء عمل البرنامج من بدء التشغيل nablion 3 556 16-12-12, 08:35 PM
آخر رد: 3amo
  استفسار بخصوص التشغيل مع برنامج الحماية ابـ فيصل ـو 1 335 11-12-12, 12:09 AM
آخر رد: 3amo

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم