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

كيف أقوم بإنهاء برنامج موجود في قائمة ال Process

مغلق
بدأه hythamzero في 1 أبريل 2006 · 3 رد · 576 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا أمر لإظهار كل البرامج (المعالجات) المشتغلة في خلفية الحاسوب دون أن تظهر في النافذة التي تظهر إذا ضغطت على (Ctrl+Alt+Del).

سؤالي هو كيف أغلق أي برنامج في هذه القائمة كما في ال "Windows XP". لكن بواسطة ال"VB"في مشروع الخاص؟

وشكرا لكم

وهذا هو الأمر لمن يحتاجه

ضع في "Mdule" الآتي:

Option Explicit
Public Const TH32CS_SNAPPROCESS As Long = 2&
Public Const MAX_PATH As Long = 260

Public Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type


Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" _
(ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Public Declare Function ProcessFirst Lib "kernel32" _
Alias "Process32First" _
(ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Public Declare Function ProcessNext Lib "kernel32" _
Alias "Process32Next" _
(ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Public Declare Sub CloseHandle Lib "kernel32" _
(ByVal hPass As Long)

ثم في ال"Form" بعد وضع أداة زر واحدة وأداة لائحة (List)

Option Explicit
Private Sub Command1_Click()

Dim hSnapShot As Long
Dim uProcess As PROCESSENTRY32
Dim success As Long

hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)

If hSnapShot = -1 Then Exit Sub

uProcess.dwSize = Len(uProcess)
success = ProcessFirst(hSnapShot, uProcess)

If success = 1 Then

Do
List1.AddItem uProcess.szExeFile
Loop While ProcessNext(hSnapShot, uProcess)

End If

Call CloseHandle(hSnapShot)

End Sub

وشكرا جزيلا

تم تعديل هذه المشاركة بواسطة Xacker في 2 أبريل 2006 في 13:58

#3

سؤالي هو كيفيه اغلاف اي برنامج مفتوح ومسجل في قائمه (ctrl+alt+del)عن طريق فجوال بيسك؟

برنامج رسم تصميمي

لعبه لغز الارقام من تصميمي

لعبه سيجا من تصميمي

لعبه اكس و اووووووووو

برنامج لحساب عمرك برمجه كامله دون الاستعانه بدوال vb

تم تعديل هذه المشاركة بواسطة Xacker في 2 أبريل 2006 في 14:01

#4

اولا, يجب اختيار عنوان مناسب للموضوع, تم التنبيه, التكرار يوجب الانذار.

ما ستحتاج اليه هو وظيفة TerminateProcess, هذه الوظيفة تتطلب بارامتر هو hProcess وهو الـ Handle (مقبض) الـ process التي تريد انهاءها.

تستطيع الحصول على الـ handle من خلال OpenProcess, هذه الوظيفة تملك 3 بارامترات, اهم بارامتر هو الثالث, ProcessID, هذا البارامتر يحدد الـ ID الخاص بالـ process المراد انهاءها.

تستطيع الحصول على الـ ProcessID من خلال EnumProcesses والتي تقوم بالحصول على جميع الـ IDs التابعة للـ processes الموجودة وتضعهم في مصفوفة Array. تملك ايضا 3 بارامترات لكن لن تحتاج للحصول عليهم من خلال وظيفة رابعة.

المهم, يمكنك مراجعة المزيد من المعلومات حول الثوابت التي ستحتاجها من خلال http://www.allapi.net/apilist/ او بكل بساطة MSDN.

تم تعديل هذه المشاركة بواسطة Xacker في 2 أبريل 2006 في 15:05

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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

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