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

Wait for a process to terminate

Total Hit ( 3613)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


You can use the VB.NET Shell command (in the Microsoft.VisualBasic namespace) to run an external process and wait for its termination, but you can get better control if you work directly with the Process class in the System.Diagnostics namespace. You can start a process with the Start static method (which returns a Process object), and then wait until the process exits by querying the WaitForExit instance method, which takes an optional timeout in milliseconds and returns True if the process has exited:

Click here to copy the following block
' run Word and wait until it exits
Dim appexe As String = "C:\Program Files\Microsoft Office\Office\Winword.exe"
' you can pass arguments to the process, if you need to
Dim wordProc As Process = Process.Start(appexe, "")

' wait until Word exits, but display a message every second
Do Until wordProc.WaitForExit(1000)
   Console.WriteLine("Waiting for Word to exit")
Loop

You can also check whether another process is still running by querying the HasExited readonly boolean property.
There is also another method to get a notification when a process exits. You must set a handler for the Exited event and enable event raising by setting the EnableRaisingEvent property to True:

Click here to copy the following block
Dim exited As Boolean

Sub Main()
  Dim appexe As String = _
    "C:\Program Files\Microsoft Office\Office\Winword.exe"
  Dim wordProc As Process = Process.Start(appexe, "")
  AddHandler wordProc.Exited, AddressOf Process_Exited
  wordProc.EnableRaisingEvents = True

  ' do something else here
  ' (in this example just a loop that waits until the process exits
  Do
    Threading.Thread.Sleep(100)
  Loop Until exited
  RemoveHandler wordProc.Exited, AddressOf Process_Exited
End Sub

Private Sub Process_Exited(ByVal sender As Object, ByVal e As EventArgs)
  Console.WriteLine("Word has exited")
  exited = True
End Sub


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.