منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيفية عمل مسج بوكس تظهر لمدة ثم تختفي - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد الفيجوال بيسك 6 (http://vb4arb.com/vb/forumdisplay.php?fid=116)
+---- الموضوع : كيفية عمل مسج بوكس تظهر لمدة ثم تختفي (/showthread.php?tid=5879)



كيفية عمل مسج بوكس تظهر لمدة ثم تختفي - RaggiTech - 17-10-12

كاتب الموضوع : AhmedEssawy

منقولة من المنتدى القديم للأخ بدرميديا .

تعتمد هذه الدالة على معرفة الهاندلر Handler الخاص بالمسج بوكس لتستطيع بعد ذلك التحكم بها واظهارها واخفاءها كما تريد من خلال مجموعة من الأرقام والقيم قام الأخ بتعريفها في أول الكود مثل الثابت : NV_CLOSEMSGBOX والذي يعني الرقم &H5000 وهو الذي يتم استخدامه ارساله في العملية ولكن هذا التعريف لتسهيل الأسماء فقط .

لاحقاً سيقوم بالاعتماد على مجموعة من API's للبحث عن المسج بوكس ومن ثم تفعيلها ، يمكنك في هذه الحالة استخدام أمر SendKeys لارسال ضغطة زر Enter لاغلاق المسج بوكس .



نكتب في الموديول

كود :
Public Const NV_CLOSEMSGBOX As Long = &H5000&
Public Declare Function SetTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&, _
ByVal uElapse&, ByVal lpTimerFunc&)
Public Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Public Declare Function LockWindowUpdate& Lib "user32" (ByVal hwndLock&)
Public Declare Function SetForegroundWindow& Lib "user32" (ByVal hWnd&)
Public Declare Function MessageBox& Lib "user32" Alias "MessageBoxA" _
(ByVal hWnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&)
Public Declare Function KillTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&)
Public Const API_FALSE As Long = 0&
Public Sub TimerProc(ByVal hWnd&, ByVal uMsg&, ByVal idEvent&, ByVal dwTime&)
KillTimer hWnd, idEvent
Dim hMessageBox&
'هنا نغير عنوان الرسالة
hMessageBox = FindWindow("#32770", "[EMAIL="BADRMEDIA@HOTMAIL.COM"]BADRMEDIA@HOTMAIL.COM[/EMAIL]")
If hMessageBox Then
Call SetForegroundWindow(hMessageBox)
SendKeys "{enter}"
End If
Call LockWindowUpdate(API_FALSE)
End Sub
وفي زر الأمر


كود :
SetTimer hWnd, NV_CLOSEMSGBOX, 4000&, AddressOf TimerProc
Call MessageBox(hWnd, "تعلم مع بدرميديا ولا تنسنا من الدعاء", _
"[EMAIL="BADRMEDIA@HOTMAIL.COM"]BADRMEDIA@HOTMAIL.COM[/EMAIL]", MB_ICONQUESTION Or MB_TASKMODAL)