I'm developing a Launcher application for games. Much like XBOX Dashboard in XNA. I want to open back my program when the process which it started(the game) exits. With a simple game this is working:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImportAttribute("User32.DLL")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_SHOW = 5;
private const int SW_MINIMIZE = 6;
private const int SW_RESTORE = 9;
public void Run(file)
{
ProcessStartInfo startInfo = new ProcessStartInfo(file);
Environment.CurrentDirectory = Path.GetDirectoryName(file);
startInfo.Verb = "runas";
var process = Process.Start(startInfo);
process.WaitForExit();
ShowWindow(Game1.Handle, SW_RESTORE);
SetForegroundWindow(Game1.Handle);
}
The Game1.Handle is got from:
Handle = Window.Handle;
In the Game1's Load Content method.
My question is how I can make the window open up after all the child process that the ran process has started is finished?
Like a launcher launches a game.
I think some more advanced programmer may know the trick.
Thanks in advance!