Как я могу сказать, что мое окно приложения является окном переднего плана - PullRequest
1 голос
/ 02 октября 2009

У меня следующая проблема: я хочу быть в состоянии определить, является ли мое окно приложения окном переднего плана в Windows. Я использую C #, .Net Framework 3.5 на Windows XP.

Я действительно могу придумать два способа сделать то, что я хочу после

  1. Используйте pinvoke, GetForeGroundWindow и сравните возвращенное hWnd с hWnd моей формы
  2. Проверьте, является ли Form.ActiveForm null или ссылкой на объект

Метод 1 выглядит нормально, но я бы предпочел не использовать pinvoke, если мне не нужно. Я не совсем уверен в способе 2, хотя, похоже, он работает хорошо.

Какой метод я должен использовать, есть ли другой способ?

1 Ответ

3 голосов
/ 23 февраля 2010

Похоже, ActiveForm зависит от приложения.

Если вы хотите знать, является ли / когда ваша форма активной формой для всей ОС, вы застряли с API и сравнением hWnd.

[System.Runtime.InteropServices.DllImport( "user32.dll" )]    
public static extern IntPtr GetForegroundWindow();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...