المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [تمرين] CrashReportMe


STRELiTZIA
22-10-2009, 03:12 PM
السلام عليكم و رحمة الله
لمحاولة دفع بعض الديناميكية في المنتدى أضع بين أيديكم هذا التمرين البسيط بعنوان: CrashReportMe
هدفه:
محاولة برمجة تطبيق يخبرننا عن سلامة سير تشغيله، ليس المطلوب سلامة Integrity الخاصة بالتطبيق بل يخبرنا انه اشتغل بصفة طبيعية إلى غاية إغلاقه...

مثال لمحاولة إيصال الفهم أكثر : نظام التشغيل Windows ان تم اغلاقه بصفة غير طبيعية فانه عند التشغيل من جديد يخبرنا بذلك، يعني نفس الشئ بالنسبة للتمرين، التطبيق يخبرنا انه عمل عملة بصورة طبيعية.


القوانين :
1- برمجة التطبيق المطلوب... اجباري :tong:
2- تطوير الفكرة الى برمجة مكون مستقل... اختياري :brow:

بالتوفيق إن شاء الله

Goblin
22-10-2009, 07:12 PM
السلام عليكم و رحمة الله و بركاته

الفكرة بسيطة و بدائية,

- يقوم الرنامج بكتابة قيمة "True" عند الاغلاق الطبيعي, ثم يقوم بالتأكد منها عند تشغيل البرنامج.
- فى حاله اغلاق الرنامج بشكل مفاجئ (من خلال "Task Manger" علي سبيل المثال) لا يكتب قيمة "True", لذلك عند تشغيل الرنامج بعد ذلك, يظهر رسالة تفيد بان البرنامج اغلق بطريقة غير طبيعية.

I_Tiger
23-10-2009, 12:45 AM
لكن اين سيكتب هذه ال"True" في الريجستري ام في ملف منفصل ini مثلا...:kick:

و هل هذا قانوني :laugh:

STRELiTZIA
23-10-2009, 08:15 AM
السلام عليكم و رحمة الله

لكن اين سيكتب هذه ال"True" في الريجستري ام في ملف منفصل ini مثلا...
المرفق يتحدث عن نفسه... هل اطلعت عليه قبل طرح سؤالك ؟


و هل هذا قانوني

نعم.... التمرين مفتوح لكل الأفكار...

اين حلك اخ نمــــــــــــر http://www.delphi4arab.com/forum/images/icons/icon10.gif ؟

بالتوفيق ان شاء الله

I_Tiger
23-10-2009, 08:51 AM
حل الاخ Goblin لم يعمل عندي :brow:

لانه لم يعمل حساب للVirtualization فى فستا :disgust:

تم اطلاق Se7en امس وصرنا خطوتين الى الوراء :laugh:

معذرة لانني شاطر في الانتقاد اكثر من العمل :oops:

STRELiTZIA
23-10-2009, 09:43 AM
حل الاخ Goblin لم يعمل عندي :brow:


بل يعمل بصفة طبيعية :
تمت التجربة على : Vista و Seven

لانه لم يعمل حساب للVirtualization فى فستا

بما يخص UAC Virtualization فهذا الخيار يعود الى المستعمل... و ليس الى المبرمج لانه من صلاحيات التشغيل الذي يحددها المستعمل على النظامين المذكورين..

بناءا على قولك فإن كل البرامج و منها برامج الحماية و غيرها التي يطلب النظام صلاحيات التشغيل ليشغلها فهي لم تعمل حساب لخيار و صلاحيات الــ UAC :bye1:


معذرة لانني شاطر في الانتقاد اكثر من العمل.

الانتقاد فن من فنون "التحليل" يجب ان يبنى على قوة الحجة...


تم اطلاق Se7en امس وصرنا خطوتين الى الوراء

اذا كنت تقصد النظام فيمكنك تحمليه و تنصيبه في اقل من يومين لتلحق بالخطوتين... او ان كان قصدك العلم و المعرفة فيجب ان تكون انت اللبنة لكي يخرج غيرك من التخلف الذي تتحدث عنه...


انا في انتظار حلك :tong: ؟

I_Tiger
23-10-2009, 11:46 AM
هذا هو حلي :bb:

مع انني غششت... كثيرا:closedeyes:

STRELiTZIA
23-10-2009, 12:08 PM
مع انني غششت... كثيرا

لا عليك :) ساعطيك حبة زلابية :)

STRELiTZIA
23-10-2009, 03:26 PM
هذا هو حلي

لا يجود فرق بينه و بين حل Goblin !!!!
نفس ملف الــ Log و نفس الــ Section و نفس خوارزمية الفحص !!!!

هل استعملت السورس الذي ارفقه Goblin ؟ :rtfm2:

I_Tiger
23-10-2009, 07:38 PM
busted :whistling:

والله ما بعيدا :cryss:

o15s19
23-10-2009, 09:49 PM
السلام عليكم

هذا حلي أأمل ان يعجبكم

في المرفقات

STRELiTZIA
24-10-2009, 08:36 AM
السلام عليكم و رحمة الله

الحلول المقبولة الى حد الآن :
حل اخي : Goblin باستعمال ملف خارجي بصيغة IniFile و فحص بمتغير Boolean.
حل اخي : o15s19 باستعمال مفتاح الريجيستري HKEY_CURRENT_USER\Software\CrashMeReport و فحص بمتغير DWORD

الطرق المختلفة تزيد في متعة التعلم :)

هل من مزيد ؟