I\'m using this:
var proc2 = Process.Start(Path.GetFullPath(filename));
proc2.Exited += (_, __) =>
{
MessageBox.Show(\"closed!\");
};
<
You can fire the alert after proc2.WaitForExit()
You forgot to set the EnableRaisingEvents
to true.
Also, you may want to create a Process with the constructor, set the ProcessStartInfo and then call Start after you register to listen to the event. Otherwise you have a race condition where the Process exits before you even register to listen for the event (unlikely I know, but not mathematically impossible).
var process = new Process();
process.StartInfo = new ProcessStartInfo(Path.GetFullPath(filename));
process.EnableRaisingEvents = true;
process.Exited += (a, b) =>
{
MessageBox.Show("closed!");
};
process.Start();
you forget Enable Events
Process p;
p = Process.Start("cmd.exe");
p.EnableRaisingEvents = true;
p.Exited += (sender, ea) =>
{
System.Windows.Forms.MessageBox.Show("Cmd was Exited");
};
You need to set Process.EnableRaisingEvents to true.