PDA

View Full Version : برنامه در حال اجرا



ندا محمدی
چهارشنبه 16 فروردین 1385, 10:35 صبح
سلام دوستان
من احتیاج به برنامه ای دارم که بتونه task manager رو کنترل کنه البته قسمت processes که بفهمم
آیا برناه ای در حال اجرا است یا نه
خیلی گشتم ولی پیدا نکردم
ممنون میشم اگه کسی برام بذاره:خجالت:

Payman62
چهارشنبه 16 فروردین 1385, 12:13 عصر
به تسکمنجر چی کار کاری. اومدیمو یکی تسکمنجرشو بست. با این کد میتونی لیست تمام پروسه هارو به دست بیاری.
اسم فایل مورد نظرتو تو تکس باکس بده و کلیک کن.

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
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 * 260
End Type
Const TH32CS_SNAPALL = &HF
Const PROCESS_ALL_ACCESS = &H1F0FFF

Private Sub EndProcess(ProcessName As String)
Dim hSnapshot As Long
Dim processInfo As PROCESSENTRY32
Dim success As Long
Dim exeName As String

hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0)
processInfo.dwSize = Len(processInfo)
success = Process32First(hSnapshot, processInfo)

While success <> 0
exeName = Left(processInfo.szExeFile, InStr(processInfo.szExeFile, vbNullChar) - 1)
If UCase(exeName) = UCase(Text1.Text) Then
MsgBox Text1.Text & " dar hale ejrast"
End If
success = Process32Next(hSnapshot, processInfo)
Wend
CloseHandle (hSnapshot)
End Sub

Private Sub Command1_Click()
EndProcess Text1.Text
End Sub


البته ممکنه برنامه خطا کنه. چون اگه پروسه ای هم اسم برنامه مورد نظر شما ران باشه اشتباه صورت میگیره.

sjj
چهارشنبه 16 فروردین 1385, 13:00 عصر
ببینید این کامپوننت به کارتون می یاد.

ehsan_ansaripoor
چهارشنبه 16 فروردین 1385, 15:12 عصر
دوست عزیز برای اینکه بفهمی برنامه ای در حال اجرا است یا نه بدون دسترسی به task manager هم می تونی بفهمی.

ندا محمدی
چهارشنبه 16 فروردین 1385, 22:03 عصر
میشه دوستان یه برنامه کوتاه برام بزارن

Payman62
پنج شنبه 17 فروردین 1385, 01:10 صبح
کدی که گذاشته بودم یه اشکال کوچیک داشت که تصحیح کردمش. یه تکس باکس با یه کلید بذار. اسم پروسه مورد نظرتو تو تکس باکس وارد کن و به روی کلید کلیک کن. اگه اون اسم تو پروسه ها باشه پیغام میده که اون فایل در حال اجراست.

ندا محمدی
پنج شنبه 17 فروردین 1385, 18:54 عصر
آقا پیمان از کدی که گذاشته بودید تشکر می کنم
اما من یه مشکل دیگه برام پیش اومده
حذف یک proceese از taskbar

ممون میشم اگه این سوالمم جواب بدید

Payman62
پنج شنبه 17 فروردین 1385, 20:53 عصر
برای مخفی کردن فرمت از تسکبار باید visible فرمت رو برابر False قرار بدی.
ولی فکر کنم منظورت بستن یه پروسه بود درسته؟

ندا محمدی
جمعه 18 فروردین 1385, 08:20 صبح
بله منظور من همون حذف یک processeبود
تشکر از توجه شما آقا پیمان

ندا محمدی
جمعه 18 فروردین 1385, 08:23 صبح
میشه در مورد کامپوننت killprocesseکه دوستان در بالا گذاشتن یه برنامه کوچک برام بذارید

Payman62
جمعه 18 فروردین 1385, 14:36 عصر
کد بستن یه پروسه. اسم پروسه رو بذار تو تکس باکس و کلیک کن. نام پروسه رو کامل با پسوند تایپ کن.

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
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 * 260
End Type
Const TH32CS_SNAPALL = &HF
Const PROCESS_ALL_ACCESS = &H1F0FFF

Private Sub EndProcess(ProcessName As String)
Dim hSnapshot As Long
Dim processInfo As PROCESSENTRY32
Dim success As Long
Dim exeName As String

hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0)
processInfo.dwSize = Len(processInfo)
success = Process32First(hSnapshot, processInfo)

While success <> 0
exeName = Left(processInfo.szExeFile, InStr(processInfo.szExeFile, vbNullChar) - 1)
If UCase(exeName) = UCase(ProcessName) Then
ProcName = OpenProcess(PROCESS_ALL_ACCESS, 0&, processInfo.th32ProcessID)
TermVal = TerminateProcess(ProcName, 0&)
End If
success = Process32Next(hSnapshot, processInfo)
Wend
CloseHandle (hSnapshot)
End Sub

Private Sub Command1_Click()
EndProcess Text1.Text
End Sub