PDA

View Full Version : سوال: لیست (Process-iD) درحال اجرا



farb0d
شنبه 02 آذر 1387, 20:08 عصر
سلام
من یک سورس یا کد
میخوام تا لیست pid یا همون (Process-iD) در حال اجرا در ویندوز رو نشون بده

اگر امکان داره از tasklist ویندوز استفاده نشه
یعنی اگر tasklist در ویندوز وجود نداشت (پاک شده بود ) باز هم برنامه بتونه به کارش ادامه بده و pid ها رو برگردونه


متشکرم

farb0d
دوشنبه 04 آذر 1387, 22:28 عصر
بابا این سایت این همه مدیر و کاربر داره یعنی هیچ کس بلد نیست
جواب من رو بده

.:KeihanCPU:.
دوشنبه 04 آذر 1387, 23:22 عصر
یه سورس از همین سایت گرفتم قبلا
اما یادم نیست کجا بود.در مورد پروسس ها زیاد هست اما pid شون رو بده نمیدونم.
خودت هم یکم سورسها رو دستکاری کنی خوبه.
جستجو کن شاید به نتیجه برسی
سورسی که میگم developer ش m8spy بود

farb0d
سه شنبه 05 آذر 1387, 20:31 عصر
تمام پست های که در این زمینه بوده خوندم
ولی به نتیجه ای نرسیدم

این اقای m8spy هم تا الان 1,176 تا پست دادن من نمیتونم که همه این ها رو بخونم.
m8spy اگر این پست رو خوندید لطفا راهنمای کنید

vcldeveloper
چهارشنبه 06 آذر 1387, 02:28 صبح
درباره Tool Help API جستجو کنید، مثلا یکی از کلید واژه هایی که می تونید استفاده کنید: CreateToolhelp32Snapshot

farb0d
چهارشنبه 06 آذر 1387, 20:56 عصر
Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long


لطفا در باره این توضیح بدید وبگید چه کار میتونه انجام بده

vcldeveloper
پنج شنبه 07 آذر 1387, 01:53 صبح
لطفا در باره این توضیح بدید وبگید چه کار میتونه انجام بده
در MSDN توضیحات مربوط به آن را مطالعه کنید.

farb0d
جمعه 08 آذر 1387, 00:59 صبح
ببخشید من msdn ندارم نمیشه خودتون یکم در بارش توضیح بدید

vcldeveloper
جمعه 08 آذر 1387, 03:21 صبح
ببخشید من msdn ندارم نمیشه خودتون یکم در بارش توضیح بدیدلازم نیست MSDN داشته باشید. برید به سایت MSDN (http://msdn.microsoft.com/)، و این تابع را آنجا جستجو کنید. خودم توضیح ندادم، چون اینها یک مجموعه تابع هستند که برای کار کردن باهاشون، باید درباره شان مقداری مطالعه کنید.

Payman62
جمعه 08 آذر 1387, 16:14 عصر
سلام.
این سورس مدیریت پروسس هاست. غیر از pid خیلی اطلاعات دیگه هم در مورد پروسس بهت میده.

-------------------------------------

یه مشکلی هنگام ضمیمه کردن فایل به وجود اومد. اصلا صفحه ضمیمه فایل باز نمیشه. لطفا مشکل رو حل کنید.

farb0d
جمعه 08 آذر 1387, 16:53 عصر
میتونید این کدها رو به صورت یک برنامه کامل بنویسید تا کار هایی که انجام میده معلوم بشه
لیست پروسه های فعال رو باید بده اما اجزا فورم رو نگفته که باید برای استفاده ازش گذاشته بشه

Declarations :


Option Explicit
' Name: List All Active Processes
' Author: Chong Long Choo
' Email: chonglongchoo@hotmail.com
' Date: 09 September 1999
'<--------------------------Disclaimer------------------------------->
'
'This sample is free. You can use the sample in any form. Use
'this sample at your own risk! I have no warranty for this
'sample.
'
'<--------------------------Disclaimer------------------------>
'-----------------------------------------------------------
'How to use
'--------------------------------------------------------------
' Dim i As Integer
' Dim objItem As ListItem
' Dim NumOfProcess As Long
' Dim objActiveProcess As clsActiveProcess
' Set objActiveProcess = New clsActiveProcess
' NumOfProcess = objActiveProcess.GetActiveProcess
' For i = 1 To NumOfProcess
' Set objItem = ListView1.ListItems.Add(, , _
' objActiveProcess.szExeFile(i))
' With objItem
' .SubItems(1) = objActiveProcess.th32ProcessID(i)
' .SubItems(2) = objActiveProcess.th32DefaultHeapID(i)
' .SubItems(3) = objActiveProcess.thModuleID(i)
' .SubItems(4) = objActiveProcess.cntThreads(i)
' .SubItems(5) = objActiveProcess.th32ParentProcessID _
' (i)
' End With
' Next
' Set objActiveProcess = Nothing
Private Const TH32CS_SNAPPROCESS As Long = 2&
Private Const MAX_PATH As Integer = 260
Private 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
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" _
Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal _
lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" _
Alias "Process32First" (ByVal hSnapShot As Long, uProcess As _
PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" _
Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As _
PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As _
Long)
Private ListOfActiveProcess() As PROCESSENTRY32


Code:


Public Function szExeFile(ByVal Index As Long) As String
szExeFile = ListOfActiveProcess(Index).szExeFile
End Function
Public Function dwFlags(ByVal Index As Long) As Long
dwFlags = ListOfActiveProcess(Index).dwFlags
End Function
Public Function pcPriClassBase(ByVal Index As Long) As Long
pcPriClassBase = ListOfActiveProcess(Index).pcPriClassBase
End Function
Public Function th32ParentProcessID(ByVal Index As Long) As Long
th32ParentProcessID = _
ListOfActiveProcess(Index).th32ParentProcessID
End Function
Public Function cntThreads(ByVal Index As Long) As Long
cntThreads = ListOfActiveProcess(Index).cntThreads
End Function
Public Function thModuleID(ByVal Index As Long) As Long
thModuleID = ListOfActiveProcess(Index).th32ModuleID
End Function
Public Function th32DefaultHeapID(ByVal Index As Long) As Long
th32DefaultHeapID = _
ListOfActiveProcess(Index).th32DefaultHeapID
End Function
Public Function th32ProcessID(ByVal Index As Long) As Long
th32ProcessID = ListOfActiveProcess(Index).th32ProcessID
End Function
Public Function cntUsage(ByVal Index As Long) As Long
cntUsage = ListOfActiveProcess(Index).cntUsage
End Function
Public Function dwSize(ByVal Index As Long) As Long
dwSize = ListOfActiveProcess(Index).dwSize
End Function
Public Function GetActiveProcess() As Long
Dim hToolhelpSnapshot As Long
Dim tProcess As PROCESSENTRY32
Dim r As Long, i As Integer
hToolhelpSnapshot = CreateToolhelpSnapshot _
(TH32CS_SNAPPROCESS, 0&)
If hToolhelpSnapshot = 0 Then
GetActiveProcess = 0
Exit Function
End If
With tProcess
.dwSize = Len(tProcess)
r = ProcessFirst(hToolhelpSnapshot, tProcess)
ReDim Preserve ListOfActiveProcess(20)
Do While r
i = i + 1
If i Mod 20 = 0 Then ReDim Preserve _
ListOfActiveProcess(i + 20)
ListOfActiveProcess(i) = tProcess
r = ProcessNext(hToolhelpSnapshot, tProcess)
Loop
End With
GetActiveProcess = i
Call CloseHandle(hToolhelpSnapshot)
End Function