Connecting Tech Pros Worldwide Help | Site Map

Locating a process

  #1  
Old June 27th, 2008, 05:16 PM
Reverend Fuzzy
Guest
 
Posts: 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.


  #2  
Old June 27th, 2008, 05:16 PM
Raoul Watson
Guest
 
Posts: n/a

re: Locating a process



"Reverend Fuzzy" <reverend.fuzzy@spamless.msbdatasystems.comwrote in
message news:6pidnbnTuLlPNcrVnZ2dnUVZ_oninZ2d@comcast.com. ..
Quote:
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


  #3  
Old June 27th, 2008, 05:16 PM
mwulfe@yahoo.com
Guest
 
Posts: n/a

re: Locating a process


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"
<reverend.fuzzy@spamless.msbdatasystems.comwrote :
Quote:
>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.
>
  #4  
Old June 27th, 2008, 05:16 PM
Dean Earley
Guest
 
Posts: n/a

re: Locating a process


mwulfe@yahoo.com wrote:
Quote:
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 (dean.earley@icode.co.uk)
i-Catcher Development Team

iCode Systems
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
SQL1131N DARI (Stored Procedure) process has been terminated abnormally. taisho answers 0 June 18th, 2007 11:33 PM
process management =?ISO-8859-15?B?TnXxbw==?= I.G answers 8 January 18th, 2007 04:35 AM
Locating A Control's Variables In v2005 Debugger Gary Brown answers 3 May 11th, 2006 08:35 AM
Maximizing and bringing another process main window on top cvetomir.todorov@gmail.com answers 0 March 17th, 2006 11:45 AM