يمكنك تعديله اخي شادي بحيث تستبدل اسم النافذة الخاصة ببرنامجك ولنفرض انها test فيكون: AppActivate "test" -> SendKeys ....
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
يمكنك تعديله اخي شادي بحيث تستبدل اسم النافذة الخاصة ببرنامجك ولنفرض انها test فيكون: AppActivate "test" -> SendKeys ....
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
شكرا أخي مسلم .... شكرا أخي Xacker فهمت المقصود الأن ...
لكن ما زالت هناك مشكلة :
* أنا أريد من البرنامج أن يقوم بوظيفة النقر على زر Close window حتى يغلق هذا
الفورم ( الأول ) وييفتح الفورم الثاني وعندما قمت بذلك أي كتب Close window في الفراغ أعطاني رسالة خطأ !!!
* أيضا عندما وضعت عنوان الفورم الأول في الفراغ قام باغلاق الفورم الأول بالفعل وهذا جيد
لكن الفورم الثاني لم يفتح بل اختفى البرنامج تماما !!
لاني كما ذكرت من قبل .. ان كان الفورم الاول هو الاب وهذا محتم في الفيشول :D فالبرنامج بالكامل سيغلق ;)
اما بالنسبة للـ Close Window اكتب برنامج صغير وحشوف شو بصير معي.. معي شوية وقت حاليا :)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
أخي Xacker لما قلت في مشاركة سابقة ( الأب ) ما كنت فاهم شو قصدك وانحرجت اسأل معقوله فيه أب وفيه أم في البرامج هههههه
بس الأن عرفت قصدك بكلمة الأب ...
في انتظار طريقتك بالنسبة للـ Close Window ...
أخي مسلم لو تكرمت ممكن الكود للملف الثاني الذي وضعته .
تحياتي
اعتقد اني عرفت الطريقة التي تكلم عنها الاخ bmbsa وهي بمراقبة عناوين الاحداث الخاصة بالـ load او الـ click او الـ Unload وما شابه.. ومن ثم التبديل بينها بواسطة Olly ;)
نفس الطريقة اقوم باتباعها ب olly بدون اي برامج خارجية لكني على العكس اقوم بالبحث عن جميع الاحداث وتحديد ما ابحث عنه (ذلك لاني افهم تركيبة الملف التنفيذي) فقط والتعديل عليه. اوكيه.. اعتقد ان شرح بسيط bmbsa عن هذا الموضوع يكفي دون الحاجة لوضعه في موضوع جديد. لكن لاحظ بان هذه الطريقة لا يمكن تنفيذها في حال الملف الذي قام بكتابته الاخ شادي.. لماذا؟ لانه وبكل بساطة لا يوجد حدث الـ load الخاص بالنافذة الاب!! :) وبالتالي يتم تجاوز هذه المشكلة بالطريقة التي اتبعها.
في المثال المرفق تلاحظ بان حدث النقر على الزر proceed مرتبط بحدث الـ Unload الخاص بالفورم الاب وبالتالي عن طريق smartcheck يمكن ملاحظة ان عنوان حدث النقر على الزر proceed هو 402330 ومن خلاله نستطيع الوصول الى احداث الفورم بالكامل فان وضعنا المؤشر في olly على سطر العنوان المذكور لوجدنا بانه يستدعى من العنوان 40202d وبالتالي ان انتقلنا الى العنوان المذكور نجد بان هناك عناوين تنفيذ لثلاث احداث وهي حدث الـ unload للفورم الاب - حدث النقر على الزر proceed و حدث النقر على الزر no. ان وضعنا نقطة توقف على بداية حدث النقر على الزر وحدث الـ unload لوجدنا بان البرنامج يتوقف بداية عند حدث الـ unload ومن ثم ينفذ حدث النقر على الزر.
هل يمكن استغلال هذا الامر؟ بالطبع، فطالما ان حدث النقر على الزر يقوم بالغاء الفورم الاب ويظهر الفورم الابن بالتالي ان قمنا باستبدال حدث الـ load للفورم الاب وحولناه ليقوم بتنفيذ حدث النقر على الزر proceed بالتالي سيؤدي هذا الى الغاء ظهور الفورم الاب :)
هل ينهي هذا ما نحن بصدد الوصول اليه؟ طبعا، فالمطلوب هو الغاء ظهور النافذة الاولى الاب وهي في الغالب النافذة التي تنبه الى ان البرنامج غير مجاني. تواجهنا مشكلة في هذه الحالة، وهي انه في حال النقر على الزر about في الفورم الابن فان حدث الـ load الخاص بالفورم الاب سيتم استدعاؤه ولكننا قمنا بتوجيهه ليقوم بالانتقال الى حدث الـ unload فكيف يمكننا تجاوز هذا الامر؟ لم اضع هذا الامر قيد التطبيق بعد لكن اعتقد انه بالامكان توجيه الفيض الى مكان فارغ في الملف ونضع فيه كود يقوم باستخدام وظيفة GetMessage لتحديد حدث الـ WM_COMMAND ومن ثم نتعامل على هذا الاساس فان كانت القيمة تخص الرسالة WM_COMMAND فاذن هو حدث النقر على زر about ونقوم بالتالي بتوجيه الفيض في هذه الحالة الى حدث الـ unload للفورم الابن :)
تحياتي
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
انا على بعد سنتمترات من الانتهاء من موضوع "طويـــــــــــــــــــــــــــل" يناقش هذا الموضوع بالتفصيل الممـــــــــــــــل++ :D
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
شكرا أخي Xacker بالنسبة لي ماراح يكون التفصيل ممل لأن هذا ما أريده وانا في الانتظار ...
يا سيدي قول ان شاء الله.. المشكلة اني غيرت بعض الافكار وزادت السنتمترات لمتر عشان وسّع الشرح وهلأ فيه مشكلة وحدة بس تنحل بكون خلصت.. قول يا رب..
تحياتي
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
ياااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااارب
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…