Programa de inicialização: traga para primeiro plano

2

Temos vários computadores usados como tocadores de música.
O programa do player é iniciado a partir da pasta de inicialização. O programa é executado em tela cheia. Os usuários podem então escanear um código de barras para ouvir a música desejada.

Mas a janela do programa não está em primeiro plano (mas é a única coisa visível na tela, então isso parece OK). Então, quando o usuário digitaliza o código de barras, o programa não tem foco. Não obtém os dados do leitor de código de barras (que emula um teclado).

Para colocá-lo em primeiro plano, um simples clique do mouse dentro da janela pode fazer o trabalho, mas não há mouse ou teclado disponível para o usuário. Apenas um scanner de código de barras.

Como podemos colocar essa janela em primeiro plano sem modificar o programa?

    
por Gregory MOUSSAT 18.09.2013 / 21:57

1 resposta

2

Caso você não encontre um método melhor, basta usar o seguinte código do 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)

É de uma pergunta do StackOverflow .

    
por 20.09.2013 / 19:10

Tags