Программа запуска: вывести на передний план
У нас есть несколько компьютеров, используемых в качестве музыкальных проигрывателей.
Программа проигрывателя запускается из папки автозагрузки. Программа работает в полноэкранном режиме. Затем пользователи могут отсканировать штрих-код, чтобы прослушать нужную музыку.
Но окно программы не на переднем плане (но это единственная видимая вещь на экране, так что это выглядит нормально). Поэтому, когда пользователь сканирует штрих-код, программа не имеет фокуса. Он не получает данные от считывателя штрих-кода (который имитирует клавиатуру).
Чтобы поставить его на передний план, можно просто щелкнуть мышью внутри окна, но пользователю не доступна мышь или клавиатура. Только сканер штрих-кода.
Как мы можем поместить это окно на передний план, не модифицируя программу?
1 ответ
Если вы не можете найти лучший метод, просто используйте следующий код Powershell:
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Tricks {
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
}
"@
sleep -sec 2
$h = (Get-Process firefox).MainWindowHandle
[void] [Tricks]::SetForegroundWindow($h)
Это из вопроса StackOverflow.