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

[ تمت الإجابة ]اغلاق جميع البرمج المفتوحة فى Task Manager

بدأه rokaphp في 6 يناير 2009 · 10 رد · 1,998 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

هل هناك طريقة لاغلاق جيع البرامج المفتوحة فى task manager مرة واحدة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#2

????????????????????????????

#3

لا يحضرني الآن إلا تنفيذ ما تقول بإستخدام الـ 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
1

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#4

رائع يا أخ تحدي، ولكن أرجو القليل من الشرح لهذا الكود

جزاك الله خيراً

هذه الجملة خاطئة  :wacko: 


#5
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

فهو غلطة .. لا داعي له نهائيا في هذا الإجراء

لقد قمت بنسخ الإجراء من أحد مشاريعي القديمة إلى نافذة الرد مباشرة ودون الإطلاع عليه .. آسف على ذلك

1

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#6

جزاك الله خيراً أخي.

هل من مصادر على الإنترنت على هذه الطريقة للمزيد من المعلومات؟ :)

تم تعديل هذه المشاركة بواسطة Abboodd في 13 يناير 2009 في 12:53

هذه الجملة خاطئة  :wacko: 


#7

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

قم بالبحث أنت وأعطنا المصدر إما تأييد أو نفي كي تعم الفائدة

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#9

جزاك الله خيرا

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#10
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

أسأل الله لك ولوالديك الفردوس الأعلى

فكرة رائعة ومميزة

فاعلم أنه لا إله إلا الله

#11
السندبااد كتب:

أسأل الله لك ولوالديك الفردوس الأعلى

فكرة رائعة ومميزة

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

banner1.gif

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