Можете ли вы запустить процесс поверх самого верхнего окна? (csharp wpf)

2

Можно ли запустить процесс поверх верхнего окна? (csharp wpf)  У меня есть следующее, но текущее окно перед этим (окно wpf, использующее класс window с topmost = true), остается в верхней части процесса при запуске процесса.

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_);
}
  • 0
    В wpf я верю, что все самые верхние окна выше всех не верхних, а «активный» самый верхний выше всех остальных самых верхних, если это помогает sLak. на мой вопрос, однако, я хочу знать, как заставить запущенный процесс быть отмеченным как самый верхний.
Теги:
wpf
topmost

1 ответ

3
Лучший ответ

Вам нужно установить окно калькулятора в качестве дочернего окна окна TopMost, вызвав SetParent.

Однако этот подход имеет недостатки.

  • 0
    Это хорошая идея, но в моем случае это не сработает, потому что дочернее окно открывается внутри ограниченных границ родительского элемента, поэтому оно слишком маленькое.
  • 0
    Отметив этот ответ как наиболее полезный. Вместо этого я использовал обходной путь (сделал другие окна на том же уровне, вместо того, чтобы любое из них было верхним, а затем установил окно, которое нужно было считать активным).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню