@GoldSerg

Как запущенное через Process.Start приложение вывести на передний план (Win10)?

Есть строка запуска стороннего приложение через путь:

IntPtr hWnd = Process.Start(pathExe);
SetForegroundWindow(hWnd);

[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);


При работе под Windows 10 никакие способы, упоминающиеся на форумах, не выводят приложение на передний план. Максимум, оно мигает на панели задач, и все.

Пробовал SetForegroundWindow, ShowWindow (с различными параметрами), симуляцию нажатия ALT приложения... Ничего не помогает. Но способ однозначно есть - на моей клавиатуре от SteelSeries есть возможность назначить запуск любого приложения на произвольную клавишу. И там запускаемое приложение выводится на передний план поверх других. Как это сделать в .Net core под Win10?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Process.Start(...)
по результату выполнения отдает инстанс класса Process, а не IntPtr, что вы считаете хердлом окна.
Вот у Process уже есть свойство MainWindowHandle, его можно и попробовать.

Если там будет null, то тут вам уже придется по полной использовать WinAPI и функции из него (EnumWindows, GetWindowThreadProcessId)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы