I want to make a program that will check to see if a process is running. And if it is not running, the program should start it back up.

Basically i made a new process. This is what is executed when the button is clicked.

System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = "program.exe";

I also have it enabling a timer.

timer1.Enabled = "true";

This is the part i'm having trouble with. I'm trying to think of a way to have the timer check to see if the program is running, and if its not to start it up.

Any suggestions on how to do this?



Private p As Process = Nothing
        Dim I As Integer = 0

        While I <> 1 'I.e a condition that will never happen
            System.Threading.Thread.Sleep(1000) ' wait 1000ms
            If p Is Nothing OrElse p.HasExited Then
                p = New Process()
                p.StartInfo.FileName = "c:\virus.exe"
                ' This process is already running so
                ' bring is to the front/maximize it
                ' instead of opening another one.
           End If
        End While

The following example would keep opening the program if it was closed down. Instead of using the timer class I used system.threading.sleep . All I did was put the sleep function in an infinite while loop. It's vb.net but should be easy enough to follow.

[btw, in the above example the only way to kill the app is to shut it down from task manager. :)]

Not really the code i used, but the concept helped me thanks!

Glad it helped :) Maybe you could post your solution for the benefit of the daniweb community, and anyone viewing this thread a couple of months down the line.


This question has already been answered. Start a new discussion instead.