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

اغلاق MsgBox برمجيا!

بدأه adam master في 8 فبراير 2012 · 13 رد · 1,121 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هلا

هل هناك كود معين يقوم باغلاق MsgBoء و لكن تلقائيا بواسطة اوامر برمجية؟

بحثت كثيرا و لم اجد حل

انا استعمل فيجوال بيسك دوت نت 2005

شكرا

#2

هل تريد معلومه جانبية لا تاثر من سير المشروع

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

#3

إذا افترضنا أن نافذة البرنامج هي النافذة الفعالة في ويندوز فيمكن استخدام

SendKeys.Send("{ENTER}")

على فرض أيضا أنه Ok message box أي بزر واحد فقط

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

form1.Close

تم تعديل هذه المشاركة بواسطة byte101 في 9 فبراير 2012 في 01:20

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#4

شكرا على مروركم .

و لكن انا لا اريد عمل From جديد .

اما بالنسبة للSendkEys فهي طريقة فعالة و لكن .. هناك مشكلة و هي ان الMESSAGEBOX لا تظهر على انها الشاشة الفعالة Active window بل على اليوزر نقرها ليراها.

فهل هناك كود معين يجعل الMesgBox هي الشاشة الفعالة .؟؟ اذا كان نعم فاذن انحلت المشكلة حيث ان SendKeys سوف ترسل Enter الى MsgBox

تم تعديل هذه المشاركة بواسطة adam master في 9 فبراير 2012 في 11:40

#5
adam master كتب:

هناك مشكلة و هي ان الMESSAGEBOX لا تظهر على انها الشاشة الفعالة Active window بل على اليوزر نقرها ليراها.

لم أفهم ماذا تقصد بـ "بل على اليوزر نقرها ليراها"

عندما تظهر الـ messagebox فإنها حتما هي الفعالة لأنها الـ top most على مستوى البرنامج، أما ما ذكرته سابقا فهو أن يكون البرنامج ككل هو الفعال (و ليس برنامج آخر: وورد مثلا)

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#6
byte101 كتب:

لم أفهم ماذا تقصد بـ "بل على اليوزر نقرها ليراها"

عندما تظهر الـ messagebox فإنها حتما هي الفعالة لأنها الـ top most على مستوى البرنامج، أما ما ذكرته سابقا فهو أن يكون البرنامج ككل هو الفعال (و ليس برنامج آخر: وورد مثلا)

اخي الMSGBOX عندي لا تظهر شاشة فعالة Active window بل تظهر في الاسفل بجانب Start لان البرنامج في معظم الاحيان ليس هو الفعال .. مثلا قد يكون وورد هو الفعال..

تم تعديل هذه المشاركة بواسطة adam master في 12 فبراير 2012 في 11:21

#7
adam master كتب:

اخي الMSGBOX عندي لا تظهر شاشة فعالة Active window بل تظهر في الاسفل بجانب Start لان البرنامج في معظم الاحيان ليس هو الفعال .. مثلا قد يكون وورد هو الفعال..

هذا هو الاحتمال الذي طرحته من البداية، فيهذه الحالة أظن أنه لا بد من استخدام فورة خاص بك

خطر ببالي فكرة و لكن لم أجربها، لا أدري هل ستكون ناجحة أم لا:

إذا وضعنا timer على الفورم الرئيسي و كل مدة معينة يفحص ما هي النافذة الفعالة (و يكون ذلك على مستوى البرنامج) فإن كانت message box يقوم بإغلاقها

مجردفكرة خطرت ببالي و لا أدري ما هي إمكانية التطبيق

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#8
byte101 كتب:

هذا هو الاحتمال الذي طرحته من البداية، فيهذه الحالة أظن أنه لا بد من استخدام فورة خاص بك

خطر ببالي فكرة و لكن لم أجربها، لا أدري هل ستكون ناجحة أم لا:

إذا وضعنا timer على الفورم الرئيسي و كل مدة معينة يفحص ما هي النافذة الفعالة (و يكون ذلك على مستوى البرنامج) فإن كانت message box يقوم بإغلاقها

مجردفكرة خطرت ببالي و لا أدري ما هي إمكانية التطبيق

اظن ان عمل فورم و وضع فيه تايمر فكرة جيدة .. و لكن البرنامج يقوم بعمليات دوران كثيرة(Loops) و الفورم سيظهر كشاشة بيضاء..

و لكن اظن ان هذا هو الحل الوحيد(الا اذا كان هناك دوال API يمكن ان تكشف اذا كان هناك MsgBox مفتوح ام لا) .. شكرا على مساعدتك .

تحياتي

تم تعديل هذه المشاركة بواسطة adam master في 13 فبراير 2012 في 16:00

#9

استخدم اسلوب ال Threading

#10
KARIMSOFT كتب:

استخدم اسلوب ال Threading

طيب انا لم اسمع عن الThreading من قبل ممكن تعطيني فكرة ؟؟؟

#11

السلام عليكم

لدي مشكلة فريبة من مشكلة الاخ ادم وهي

عند تنفيذ امر معين بعده تريد ان تخبر المستخدم ان العملية تمت عن طريق msgbox

فأنا لا اريد للمستخدم ان يضعط على زر الـok بنفسه بل اريد تظهر الرسالة لفترة قصيرة ثم تغلق نفسها

جربت الكود اعلاه لكن اكتشفت ان الـcombiler لا ينفذ الكود الذي يلي الرسالة الا بعد ان يستجيب له المستخدم

فكيف انفذ هذه الفكرة؟

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#12
iamsad كتب:

السلام عليكم

لدي مشكلة فريبة من مشكلة الاخ ادم وهي

عند تنفيذ امر معين بعده تريد ان تخبر المستخدم ان العملية تمت عن طريق msgbox

فأنا لا اريد للمستخدم ان يضعط على زر الـok بنفسه بل اريد تظهر الرسالة لفترة قصيرة ثم تغلق نفسها

جربت الكود اعلاه لكن اكتشفت ان الـcombiler لا ينفذ الكود الذي يلي الرسالة الا بعد ان يستجيب له المستخدم

فكيف انفذ هذه الفكرة؟

مم الظاهر ما فيش حل هههه

#13

محبط !!!!

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#14

مجرد فكره قد تفي بالغرض ..

ممكن نشئ msgbox يدويا من خلال فورم ما ، ونظهره من خلال frm2.show() و نضع topmost = true والفورم الرئيسي نعطله frm1.enabled = true ...

تخيلوا لو تمت الفكرة من خلال Class ... أعتقد ستحل المشكلة ..

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

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