Как изменить активное окно в Windows? - PullRequest
0 голосов
/ 17 февраля 2012

Мне нужно иметь возможность переключаться между двумя сторонними приложениями на основе ввода с COM-порта, т.е. когда я получаю Command1 от устройства, сделать App1 активным (самым верхним) окном, а когда я получаю Command2 с устройства, сделайте App2 активным окном.Почему я хочу это сделать?Это приложение будет работать на станции самообслуживания, а я буду следить за входом датчика движения;поэтому, когда перед станцией никого нет, мне нужно показать App2 (например, рекламу), а когда кто-то стоит передо мной, мне нужно показать App1 (например, основное приложение).фон и слушает вход на COM-порт и переключает активное окно соответственно.Итак, вопрос в том, как я могу изменить активное окно, используя .NET?Операционная система будет Windows XP Pro SP2, но было бы лучше, если бы она работала и на Windows 7.

1 Ответ

2 голосов
/ 17 февраля 2012

Вы можете использовать;

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

Затем найдите соответствующий процесс по имени или по циклу GetProcesses, например. предполагая один экземпляр:

Process[] process = Process.GetProcessesByName("myapp");
if (process.Length > 0 && process[0].MainWindowHandle != IntPtr.Zero) {
   SetForegroundWindow(process[0].MainWindowHandle);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...