2

У нас есть несколько компьютеров, используемых в качестве музыкальных проигрывателей.
Программа проигрывателя запускается из папки автозагрузки. Программа работает в полноэкранном режиме. Затем пользователи могут отсканировать штрих-код, чтобы прослушать нужную музыку.

Но окно программы не на переднем плане (но это единственная видимая вещь на экране, так что это выглядит нормально). Поэтому, когда пользователь сканирует штрих-код, программа не имеет фокуса. Он не получает данные от считывателя штрих-кода (который имитирует клавиатуру).

Чтобы поставить его на передний план, можно просто щелкнуть мышью внутри окна, но пользователю не доступна мышь или клавиатура. Только сканер штрих-кода.

Как мы можем поместить это окно на передний план, не модифицируя программу?

1 ответ1

2

Если вы не можете найти лучший метод, просто используйте следующий код 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .