الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال صعب مش عارف لة اجابة

مغلق
بدأه احمد السيد في 12 يونيو 2005 · 4 رد · 642 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

فى لغة الفجيوال بيزيك عندما اريد اظهار رسالة ما فور تحميل البرنامج للذاكرة اقوم بكتابة كود الرسالة فى حدث load وعندما اريد اظهار رسالة اخرى عند اغلاق البرنامج سواء بواسطة المستخدم

او بواسطة اى برنامج اخر اكتب الكود فى حدث unload اوكية الى هنا كل شى تمام

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

 .486                      ; create 32 bit code
    .model flat, stdcall      ; 32 bit memory model
    option casemap :none      ; case sensitive

    include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\gdi32.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\Comctl32.inc
    include \masm32\include\comdlg32.inc
    include \masm32\include\shell32.inc
    include \masm32\include\oleaut32.inc

    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\gdi32.lib
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\Comctl32.lib
    includelib \masm32\lib\comdlg32.lib
    includelib \masm32\lib\shell32.lib
    includelib \masm32\lib\oleaut32.lib

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

    .data

msgtext db "hello world!!!!!!!!!!!!",0
msgtitle db "test",0

    .code

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

start:

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

invoke MessageBox,NULL,Addr msgtext,Addr msgtitle,MB_OK


invoke ExitProcess,0 





; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

end start
#2

السلام عليكم

انت هنا اخى احمد لا تقوم بعمل برنامج كامل, ما قمت به ماهو إلا messagebox ثم اغلقت البرنامج....

فى برنامج كامل تقوم باخذ الرسائل من الوندوز ثم تعالجها.. وفى حلة اردت ان تظهر رساله فى بداية البرنامج يمكنك ان تقوم بإظهارها عند معالجه رسالة WM_CREATE وعندما تريد إظهار رساله فى نهاية البرنامج يمكنك ان تظهرها فى معالجة الرساله WM_DESTROY, وبما ان برنامج هذا لا يعالج الرسائل القادمه من الوندوز فلا يمكنك فعل ذلك...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#3

إقرا دروس عن برمجة النوافذ بالاسيمبلي Assembly Win32 Programming .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#4

السلام عليكم

معنى ذلك ان مينفعشى الا اذا كان هناك واجهة مستخدم(مفاتيح او قوائم ومربعات نصوص وغيرها)

ومن خلالها اقوم بمعالجة الرسائل

سؤال:ماذا لواردت معرفة اسم البرنامج الذى يريد اغلاق برنامجى هل يمكن عمل ذلك عن طريق اختبار الرسائل القادمة الى برنامجى فلو كانت الرسالة عبارة عن wm_close يبقى فى الحالة دى البرنامج هيتم اغلاقة ولو كان ذلك صحيح فكيف اقوم بعمل مثل هذة الطريقة

#5

السلام عليكم

على حسب علمي المبرمج هو المتحكم فى الرسائل, يعنى لو جائت رساله لبرنامجك تحمل wm_close تستطيع بعد ان تحصل على الرساله ان تفعل ما تريد, فى بعض الحالات يتم إغلاق البرنامج عن طريق النظام مثل عندما تغلق البرنامج عن طريق task managet مثلاُ وفى هذه الحاله ولكنه لن يتيح لك عمل شيئ اخر وإنما يقوم بإغلاق برنامجك مباشرتاً.

اما بالنسبه لمعرفة إسم البرنامج الذى ارسل رسله لبرنامجك فالله اعلم, لا اعرف طريقه لمعرفة مصدر الرساله ولكن إن شاء الله سابحث فى الامر..

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…