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

خاص بال thread,process

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

السلام عليكم

اردت ان اعرف كيف يمكن عمل جمع للprocess و ال threads الموجودة على الكمبيوتر

انا لاحظت وجود Api

Process32First

Process32Next

ولكن لا اعرف استخدامهم

وكيف يكمن اغلاقها واغلاق اى برنامج من رقم ال process

وبالتوفيق للجميع

وشكرا مقدما

#5

اخى الكريم

انا طلبت طريقة تجميع كل ال process اللى بتم فى الكمبيوتر وعرفت الطريقة الحمد لله عن طريق دوال processfirst32 ,processnext32

انا اريد كيفية اغلاق process من برنامج فى vB

عن طريق رقم ID او عن طريق اسمه زى ال task bar تماما

وشكرا للرد على الموضوع

#6

هذا الموضوع مكرر في أغلب أقسام اللغات في الفريق وفي أغلب المنتديات العربية وغير العربية ! وما زال هناك من يسأل نفس السؤال -الذي تساقطت أسنانه - في عام 2007 ..

إستخدم التابع TerminateProcess والذي يتطلب الحصول على Process Handle وهذا يمكنك الحصول عليه بإستدعاء التابع OpenProcess بشرط وجود Process ID. لاحظ أنك قد تحتاج لبعض الصلاحيات Privilege أثناء التعامل مع بعض الـ Processes (راجع MSDN بخصوص هذه الصلاحيات ) ..

أما إن كان لديك إسم البرنامج فعليك الحصول على الـ Process ID من خلال العملية السابقة Process Enumration والتي إستخدمت فيها Tool Help API باستدعاء التوابع (processfirst32 ,processnext32 ) ...

اقتباس
زى ال task bar تماما

تقصد Task Manager ؟ هو لا يستخدم ToolHelp API بل يستدعي Native API ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#7

اولا الموضوع لم تتساقط اسنانه ولاحاجة ولو فعلا انتهى كان فى حد رد عليا من الاول او كنت وجدت موضوع بالسابق مكتوب دا يدل ان القليل اللى عارف الموضوع

وثانيا الموضوع دا مهم بالنسبة لى جدا

وشكرا لردك

بالنسبة ل API اللى انت ذاكرها انا حصلت على كل شئ خاص بال process سؤاء process ID او اسم البرنامج

ومحتاج بس انى اقفل اى برنامج من خلال اى حاجة منهم ID , process name

وشكرا ليك وجارى التجربة

#8

جربت ولم تفلح اى تجربة لاغلاق اى PROCESS عن طريق الدوال السابقة

انا استدمتها كالاتى

بعد الحصول على ال HANDLE

من خلال

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Const PROCESS_QUERY_INFORMATION = 1024
Const PROCESS_VM_READ = 16
Private Sub Form_Load()
Dim uHOS, hosam
uHOS = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, (pROCESSid))
hosam GetExitCodeProcess(uHOS, 1)
 TerminateProcess uHOS, hosam
End Sub

دى الطريقة اللى انا استخدمتها ولم تفلح

وياريت المساعدة الضرورية فى الموضوع دا

#9

أنا أعرف طريقة سهلة بالwmi

On Error Resume Next
For Each Process In GetObject("winmgmts://").ExecQuery("select * from Win32_Process where Name='" & ProcessName & "'")
Process.Terminate
Next

ProcessName هو اسم البرنامج الذي تريد انهائه

#10
اقتباس
اولا الموضوع لم تتساقط اسنانه ولاحاجة ولو فعلا انتهى كان فى حد رد عليا من الاول او كنت وجدت موضوع بالسابق مكتوب دا يدل ان القليل اللى عارف الموضوع

لا . الموضوع فعلاً تساقطت أسنانه لانه موضوع ليس بالجديد وقد قيل فيه ما يكفي منذ عدة سنوات و أي محاولة بحث بسيط في النت ستجد معها العديد من النتائج لما تريد .. حتى في منتديات الفريق العربي تم مناقشة مثل هذا الموضوع من قبل كم سنة ....

ما علينا ....

عندما تريد إستخدام أي تابع من توابع الـ API ينبغي عليك أن تقرأ بتمعن ما ذكر في MSDN عنها و حين تواجه مشكلة بعد إستخدامها فعند ذلك يجب عليك أن تعيد النظر بكل كلمة مذكورة في MSDN ...

إذاً دعنا سوية نرجع لما ذكر هنا TerminateProcess

اقتباس
hProcess

A handle to the process to be terminated.

The handle must have the PROCESS_TERMINATE access right. For more information, see Process Security and Access Rights.

في حين أن الكود الذي إستخدمته

uHOS = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, (pROCESSid))

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

---

طبعاً هناك عدة طرق لإنهاء process ما ومنها ما ذكرها الأخ DreamNet .

تم تعديل هذه المشاركة بواسطة cipher في 17 يونيو 2007 في 15:32

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#11

والله أحبيت أعطيكم برنامج مكتوب بالفيجول وضيفته أنهاء البرامج وهادا السورس بتاعه لو فهمتوه أعطونا الفائده:

من هنا

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

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