بســم الله الـرحمــن الرحيــم
هل هناك طريقة لاغلاق جيع البرامج المفتوحة فى task manager مرة واحدة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
بســم الله الـرحمــن الرحيــم
هل هناك طريقة لاغلاق جيع البرامج المفتوحة فى task manager مرة واحدة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
????????????????????????????
لا يحضرني الآن إلا تنفيذ ما تقول بإستخدام الـ WMI
Public Sub TerminateAll()
On Error Resume Next
Dim OBJ1Temp As Object
Dim OBJ2Temp As Object
Set OBJ1Temp = GetObject("Winmgmts:")
Set OBJ2Temp = OBJ1Temp.execquery("SELECT * FROM Win32_Process WHERE Name <> 'VB6.exe' AND Name <> '" & App.EXEName & ".exe' ")
For Each x In OBJ2Temp
If isAbort Then GoTo Last
x.Terminate
DoEvents
Next
Last:
Set OBJ2Temp = Nothing
Set OBJ1Temp = Nothing
End Subاعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
Abboodd كتب:رائع يا أخ تحدي، ولكن أرجو القليل من الشرح لهذا الكودجزاك الله خيراً
قليل الشرح أو ملخصه هو اننا نقوم بالإستعلام عن الـ Processes المفتوحه الظاهر منها والخفي حتى ما هو يخص النظام
وهذا الإستعلام يتم بطريقة الـ SELECT بالشكل التقليدي وكما تدعمه الـ WMI
ومن أفضل الحلول للوصول إلى أي من ما تحتويه الـ Ram من معلومات هو بهذه الطريقة .. أي الإستعلام
نظرا لأن الـ Ram نفسها تشبه قاعدة بيانات بها جداول .. الحاسب كله اصلا عبارة عن قاعدة بيانات
وعلى النقيد تمام مع الـ API التي تسرد (Enumerate) الـ Processes .. قد تكون الـ API هي الأفضل والأسرع
المهم .. في إستعلامنا هذا قمنا بالإستعلام من الـ Win32_Process المسؤلة عن ما نريده
وإستثنينا إسم الـ Process في حالة أن يكون VB6.exe أو إسم برنامجنا
حتى لا يغلق البرنامج دون إستكمال وظيفته سواء كان مفتوح من الـ eXe أو من الـ Design
ومن بعدها قمنا بإغلاق الـ Processes المستخرجه جميعها
ومن المحتمل ظهور أخطاء مع بعض الـ Processes غير المستجيبة لما نريد
ولهذا وضعنا On Error Resume Next
أم هذا السطر
If isAbort Then GoTo Last
فهو غلطة .. لا داعي له نهائيا في هذا الإجراء
لقد قمت بنسخ الإجراء من أحد مشاريعي القديمة إلى نافذة الرد مباشرة ودون الإطلاع عليه .. آسف على ذلك
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
جزاك الله خيراً أخي.
هل من مصادر على الإنترنت على هذه الطريقة للمزيد من المعلومات؟ :)
تم تعديل هذه المشاركة بواسطة Abboodd في 13 يناير 2009 في 12:53
هذه الجملة خاطئة :wacko:
ما قلته مصدره نقاشات مع أحد المميزين في مجالنا والدارس أكاديميا والبعض من إستنتاجي الخاص والتفضيل مصدره تجاربي الشخصية
قم بالبحث أنت وأعطنا المصدر إما تأييد أو نفي كي تعم الفائدة
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
هذا مصدر واحد على السريع
http://www.eggheadcafe.com/tutorials/aspne...ndows-mana.aspx
هذه الجملة خاطئة :wacko:
جزاك الله خيرا
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
mrx_ta7ady كتب:لا يحضرني الآن إلا تنفيذ ما تقول بإستخدام الـ WMI
Public Sub TerminateAll() On Error Resume Next Dim OBJ1Temp As Object Dim OBJ2Temp As Object Set OBJ1Temp = GetObject("Winmgmts:") Set OBJ2Temp = OBJ1Temp.execquery("SELECT * FROM Win32_Process WHERE Name <> 'VB6.exe' AND Name <> '" & App.EXEName & ".exe' ") For Each x In OBJ2Temp If isAbort Then GoTo Last x.Terminate DoEvents Next Last: Set OBJ2Temp = Nothing Set OBJ1Temp = Nothing End Sub
أسأل الله لك ولوالديك الفردوس الأعلى
فكرة رائعة ومميزة
فاعلم أنه لا إله إلا الله
السندبااد كتب:أسأل الله لك ولوالديك الفردوس الأعلى
فكرة رائعة ومميزة
ok the code is sooo good
but i want to know names of all process are running
& want to end specified process like notepad what can i do to do that
with my respect
تم تعديل هذه المشاركة بواسطة sma88 في 29 أغسطس 2011 في 23:11