By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,441 Members | 998 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,441 IT Pros & Developers. It's quick & easy.

Locating a process

P: n/a
Does anyone know off-hand of a quick routine to
identify and kill a running process by filename?

My goal is to see if "outlook.exe" is still running
after it terminates (which it sometimes does),
and kill it if it is.
Jun 27 '08 #1
Share this Question
Share on Google+
3 Replies


P: n/a

"Reverend Fuzzy" <re************@spamless.msbdatasystems.comwrote in
message news:6p******************************@comcast.com. ..
Does anyone know off-hand of a quick routine to
identify and kill a running process by filename?

My goal is to see if "outlook.exe" is still running
after it terminates (which it sometimes does),
and kill it if it is.
By process name. File name may be totally different than the process name
so you can't really relate to it.

But if you know for example that MSIMN.EXE is the name
of the process for outlook express, you can kill the process.
' in a module

Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long,
ByVal uExitCode As Long) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long,
ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal
hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal
hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias
"CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As
Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
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

Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal
ProcessID As Long, ByVal ServiceFlags As Long) As Long
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
'------------------ in a form
Option Explicit

Public Function KillApp(ProcessName As String) As Boolean
Const PROCESS_ALL_ACCESS = 0
Dim uProcess As PROCESSENTRY32
Dim rProcessFound As Long
Dim hSnapshot As Long
Dim szExename As String
Dim exitCode As Long
Dim myProcess As Long
Dim AppKill As Boolean
Dim appCount As Integer
Dim i As Integer
On Local Error GoTo Finish
appCount = 0

Const TH32CS_SNAPPROCESS As Long = 2&

uProcess.dwSize = Len(uProcess)
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
rProcessFound = ProcessFirst(hSnapshot, uProcess)
List1.Clear
' populates the list
Do While rProcessFound
i = InStr(1, uProcess.szexeFile, Chr(0))
szExename = LCase$(Left$(uProcess.szexeFile, i - 1))
List1.AddItem (szExename)
If Right$(szExename, Len(ProcessName)) = LCase$(ProcessName) Then
KillApp = True
appCount = appCount + 1
myProcess = OpenProcess(PROCESS_ALL_ACCESS, False,
uProcess.th32ProcessID)
AppKill = TerminateProcess(myProcess, exitCode)
Call CloseHandle(myProcess)
End If
rProcessFound = ProcessNext(hSnapshot, uProcess)
Loop
Call CloseHandle(hSnapshot)
Finish:
End Function
Jun 27 '08 #2

P: n/a
I don't remember where I originally got the attached utility, written
for VB6, but it could help you do what you want. I have used
CTaskList.cls in several projects. Hope you like it.

Martin

On Tue, 17 Jun 2008 07:06:44 -0500, "Reverend Fuzzy"
<re************@spamless.msbdatasystems.comwrote :
>Does anyone know off-hand of a quick routine to
identify and kill a running process by filename?

My goal is to see if "outlook.exe" is still running
after it terminates (which it sometimes does),
and kill it if it is.
Jun 27 '08 #3

P: n/a
mw****@yahoo.com wrote:
I don't remember where I originally got the attached utility, written
for VB6, but it could help you do what you want. I have used
CTaskList.cls in several projects. Hope you like it.
At a wild guess, I'd say:
http://vb.mvps.org/samples/project.asp?id=TaskList

--
Dean Earley (de*********@icode.co.uk)
i-Catcher Development Team

iCode Systems
Jun 27 '08 #4

This discussion thread is closed

Replies have been disabled for this discussion.