У меня есть полноэкранное окно, и я хочу предотвратить появление всплывающих окон, которые появляются в правом нижнем углу экрана. Я установил свойство Topmost true, но, видимо, это не помогает. Я также попытался активировать форму и дать ей фокус после ее деактивации, но это тоже не помогло. Каким образом можно игнорировать такие окна, когда пользователь взаимодействует с полноэкранным приложением? Я программирование .NET на С#.
Вы не можете этого сделать, это не поможет "что, если две программы попытались сделать это":
Вы можете попытаться сыграть в грязные трюки, чтобы заставить окно попасть в верхнюю часть самого z-порядка, но эти всплывающие окна, скорее всего, будут использовать те же самые трюки, снова сделав все это бесполезным (и в качестве дополнительного бонуса все эти грязные трюки могут превратить ваше приложение в кошмар совместимости).
Вы можете отключить эти уведомления с помощью шара, используя следующие шаги:
Перейдите к следующему подразделу:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
На правой панели создайте значение DWORD с именем EnableBalloonTips
если вам нужна помощь в том, как это делается по программе, не стесняйтесь спрашивать;)
Я не думаю, что вы можете заблокировать все всплывающие окна, окна могут не позволить вам это сделать. Но вы можете попробовать функцию SetWindowPos и передать его параметр HWND_TOP. Это может работать немного лучше, чем Topmost = true.
Я использовал элемент управления всплывающим меню sys в моем личном проекте SvnRadar, написанный в WPF.
Элемент управления находится в http://www.hardcodet.net/projects/wpf-notifyicon, написанном Филиппом Суми. Очень приятно. Только вам нужно будет "отделить" его от координат экрана SysTray и заставьте его появиться там, где хотите. Надеюсь, поможет. Удачи.