Как мы можем предотвратить появление всплывающих окон в верхней части приложения?

2

У меня есть полноэкранное окно, и я хочу предотвратить появление всплывающих окон, которые появляются в правом нижнем углу экрана. Я установил свойство Topmost true, но, видимо, это не помогает. Я также попытался активировать форму и дать ей фокус после ее деактивации, но это тоже не помогло. Каким образом можно игнорировать такие окна, когда пользователь взаимодействует с полноэкранным приложением? Я программирование .NET на С#.

  • 0
    всплывающие окна, как антивирус / Outlook / Win обновления и т. д.?
  • 0
    да, также MSN и Winamp всплывающие окна. Практически любое всплывающее окно стороннего приложения, которое разрушает полноэкранный режим.
Показать ещё 10 комментариев
Теги:
wpf
popup
fullscreen

4 ответа

4
Лучший ответ

Вы не можете этого сделать, это не поможет "что, если две программы попытались сделать это":

  • эти всплывающие окна являются обычными окнами, такими как ваши, они также используют тот же самый самый верхний стиль, который вы используете.
  • Если бы существовал способ всегда находиться над другими верхними окнами, они бы использовали его слишком, чтобы сделать его бесполезным (потому что авторы других приложений так же обеспокоены тем, что пользователь пропускает свои "супер важные" уведомления, так как вы они мешают вашему полноэкранному приложению).

Вы можете попытаться сыграть в грязные трюки, чтобы заставить окно попасть в верхнюю часть самого z-порядка, но эти всплывающие окна, скорее всего, будут использовать те же самые трюки, снова сделав все это бесполезным (и в качестве дополнительного бонуса все эти грязные трюки могут превратить ваше приложение в кошмар совместимости).

  • 0
    согласен на 100%. На самом деле сначала я неправильно понял вопрос. Вы находитесь в хост-ОС и не должны влиять на другие функциональные возможности приложения (настолько, насколько это возможно), чтобы уважать пользователей вашего приложения.
2

Вы можете отключить эти уведомления с помощью шара, используя следующие шаги:

  • Нажмите "Пуск", "Выполнить" и введите regedit
  • Перейдите к следующему подразделу:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

  • На правой панели создайте значение DWORD с именем EnableBalloonTips

  • Дважды щелкните новую запись и дайте ей значение 0.
  • Закройте редактор реестра.
  • Выйдите из Windows (это не очень круто...), а затем войдите в систему, чтобы изменения вступили в силу.

если вам нужна помощь в том, как это делается по программе, не стесняйтесь спрашивать;)

0

Я не думаю, что вы можете заблокировать все всплывающие окна, окна могут не позволить вам это сделать. Но вы можете попробовать функцию SetWindowPos и передать его параметр HWND_TOP. Это может работать немного лучше, чем Topmost = true.

0

Я использовал элемент управления всплывающим меню sys в моем личном проекте SvnRadar, написанный в WPF.

Элемент управления находится в http://www.hardcodet.net/projects/wpf-notifyicon, написанном Филиппом Суми. Очень приятно. Только вам нужно будет "отделить" его от координат экрана SysTray и заставьте его появиться там, где хотите. Надеюсь, поможет. Удачи.

  • 4
    @tigran: Я считал, что парню нужно прятаться , а не показывать всплывающие окна ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню