Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Write a console utility to kill a process

Total Hit ( 2928)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


The System.Diagnostics.Process class exposes two methods that let you kill a process: CloseMainWindow should be used with processes that have a graphical interface, whereas the Kill method should be used for apps without a user interface (or those whose main window is disable and can't process the WM_CLOSE message).

It's quite easy to use these methods (and a few others) to create a command-line utility that kills a process whose ID or name has been passed as an argument. Here's the complete source code, you should just create a console application project and compile it to a properly named executable, such as KILLPROC:

Click here to copy the following block
Imports System.Diagnostics

Module Module1
  Sub Main(ByVal args() As String)
    ' check that we have only one argument
    If args.Length <> 1 Then
      Console.WriteLine("SYNTAX: KillProc pid | procname")
      End
    End If

    Dim arg As String = args(0)
    Dim proc As Process

    Try
      ' attempt to use the argument as a PID
      proc = Process.GetProcessById(CInt(arg))
    Catch ex As Exception
      ' ignore exceptions
    End Try

    If proc Is Nothing Then
      ' attempt to use the argument as a process name
      Dim procs() As Process = Process.GetProcessesByName(arg)
      If procs.Length = 1 Then
        ' we've found the process
        proc = procs(0)
      ElseIf procs.Length > 1 Then
        Console.WriteLine _
          ("Process name is ambiguous. Unable to proceed.")
        End
      ElseIf procs.Length = 0 Then
        Console.WriteLine("Process not found. Unable to proceed")
        End
      End If
    End If

    ' kill the process
    Dim res As Boolean

    ' attempt to kill the process by closing its main window
    res = proc.CloseMainWindow()

    If res = False Then
      ' no UI or the window is disabled
      proc.Kill()
    End If

    ' wait for the process to end
    If proc.WaitForExit(1000) Then
      Console.WriteLine("Process {0} has been killed", proc.ProcessName)
    Else
      Console.WriteLine("Unable to kill process {0}", proc.ProcessName)
    End If
  End Sub
End Module


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.