Locating a process

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Reverend Fuzzy

    Locating a process

    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.ex e" is still running
    after it terminates (which it sometimes does),
    and kill it if it is.


  • Raoul Watson

    #2
    Re: Locating a process


    "Reverend Fuzzy" <reverend.fuzzy @spamless.msbda tasystems.comwr ote in
    message news:6pidnbnTuL lPNcrVnZ2dnUVZ_ oninZ2d@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.ex e" 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 TerminateProces s 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 "Process32N ext" (ByVal
    hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
    Declare Function CreateToolhelpS napshot Lib "kernel32" Alias
    "CreateToolhelp 32Snapshot" (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
    th32DefaultHeap ID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProce ssID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szexeFile As String * 260
    End Type

    Public Declare Function RegisterService Process Lib "kernel32" (ByVal
    ProcessID As Long, ByVal ServiceFlags As Long) As Long
    Public Declare Function GetCurrentProce ssId Lib "kernel32" () As Long


    '------------------ in a form
    Option Explicit

    Public Function KillApp(Process Name As String) As Boolean
    Const PROCESS_ALL_ACC ESS = 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_SNAPPROC ESS As Long = 2&

    uProcess.dwSize = Len(uProcess)
    hSnapshot = CreateToolhelpS napshot(TH32CS_ SNAPPROCESS, 0&)
    rProcessFound = ProcessFirst(hS napshot, uProcess)
    List1.Clear
    ' populates the list
    Do While rProcessFound
    i = InStr(1, uProcess.szexeF ile, Chr(0))
    szExename = LCase$(Left$(uP rocess.szexeFil e, i - 1))
    List1.AddItem (szExename)
    If Right$(szExenam e, Len(ProcessName )) = LCase$(ProcessN ame) Then
    KillApp = True
    appCount = appCount + 1
    myProcess = OpenProcess(PRO CESS_ALL_ACCESS , False,
    uProcess.th32Pr ocessID)
    AppKill = TerminateProces s(myProcess, exitCode)
    Call CloseHandle(myP rocess)
    End If
    rProcessFound = ProcessNext(hSn apshot, uProcess)
    Loop
    Call CloseHandle(hSn apshot)
    Finish:
    End Function


    Comment

    • mwulfe@yahoo.com

      #3
      Re: Locating a process - ExitMod.zip (0/1)

      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.msbda tasystems.comwr ote:
      >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.ex e" is still running
      >after it terminates (which it sometimes does),
      >and kill it if it is.
      >

      Comment

      • Dean Earley

        #4
        Re: Locating a process - ExitMod.zip (0/1)

        mwulfe@yahoo.co m 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:


        --
        Dean Earley (dean.earley@ic ode.co.uk)
        i-Catcher Development Team

        iCode Systems

        Comment

        Working...