你能在最顶层的窗口上启动一个进程吗? (csharp wpf)

时间:2011-11-29 14:35:47

标签: c# c wpf topmost

您可以在最顶层的窗口上启动进程吗? (csharp wpf)  我有以下内容,但是在此过程之前的当前窗口(使用具有topmost = true的窗口类的wpf窗口)在启动进程时仍保留在进程的顶部。

if (System.IO.File.Exists(MY_CALC_PATH))
{
    System.Diagnostics.Process helpProcess = new System.Diagnostics.Process();
    helpProcess.StartInfo.FileName = "calc.exe";
    helpProcess.Start();
    helpProcess.WaitForInputIdle();
    BringWindowToTop(helpProcess.MainWindowHandle);
    SetWindowPos(helpProcess.MainWindowHandle, myCurrentTopmostWinHnd, 0, 0, 0, 0, SWP_NOSIZE_);
}

1 个答案:

答案 0 :(得分:3)

您需要通过调用SetParent将计算器窗口设置为TopMost窗口的子窗口。

但是,这种方法has drawbacks