Приложение не показывает всплывающую подсказку

Я пишу приложение VB.NET в VS2017 для работы в Windows 10. Я хочу, чтобы основная (и единственная) форма сводилась к значку на панели задач. Эта часть у меня работает нормально. Следующая часть, отображающая всплывающее уведомление с всплывающей подсказкой (например, «Приложение все еще работает»), вообще не работает.

Я уже проверил/отметил следующее:

  • Объект NotifyIcon имеет значок, назначенный ему в сетке конструктора, а также в коде программной части vb.net для формы, как и связанный с ним BalloonTipIcon член/свойство.
  • Групповая политика на машине не запрещает использование всплывающих подсказок.
  • всплывающие подсказки, похоже, не отключены в реестре
  • Программа работает как и ожидалось в Windows 8.1 Pro и отображает всплывающую подсказку, но нет в Windows 10 Enterprise N 2016 LTSB.

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

Копирование и вставка точного кода из StackOverflow не работает. Тогда проблема должна быть в самой системе.

Это код (который работает на W8.1, но не на W10):

Private Sub frmMain_Resize(sender As Object, e As EventArgs) Handles Me.Resize

    Try

        If Me.WindowState = FormWindowState.Minimized Then

            NotifyIcon1.Visible = True
            NotifyIcon1.Icon = SystemIcons.Application
            NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
            NotifyIcon1.BalloonTipTitle = "App Title"
            NotifyIcon1.BalloonTipText = "The App is still open!"
            NotifyIcon1.ShowBalloonTip(50000)
            ShowInTaskbar = False

        End If

    Catch ex As Exception

        ErrorHandler(ex)

    End Try

End Sub

Где еще я могу посмотреть?

Перекрестная публикация в SuperUser


person David Mancini    schedule 15.08.2018    source источник
comment
Откуда вы знаете, что на самом деле это системная проблема, а не проблема с кодом? Какие тесты были проведены? Также вы говорите о двух совершенно разных пространствах имен и объектах здесь; значок уведомления ‹› тост. Согласно вашему блоку кода, вы просто используете значок уведомления...   -  person zaggler    schedule 16.08.2018
comment
В документации, которую я прочитал, подразумевается, что Windows 10 заменила BalloonTips на Toasts, так что вызов BalloonTip приводил к Toast. Возможно, я неправильно понял. Но, как указано в моем вопросе, код отлично работает в Windows 8.1; однако в Windows 10 никакая конфигурация каких-либо параметров, которые я обнаружил до сих пор, не дала ничего на экране при вызове метода ShowBalloonTip.   -  person David Mancini    schedule 16.08.2018
comment
Другими словами, все настройки W10, которые я нашел для отключения всплывающих подсказок, не были настроены для этого. Поэтому я изо всех сил пытаюсь понять, почему они не отображаются.   -  person David Mancini    schedule 16.08.2018
comment
На какой фреймворк вы ориентируетесь?   -  person zaggler    schedule 16.08.2018
comment
4.6.1, код соответствует использованию, описанному в MSDN docs.microsoft.com/en-us/dotnet/api/   -  person David Mancini    schedule 16.08.2018
comment
@Codexer Хороший призыв к тостам против воздушного шара, код, с которым я имею дело, не связан с тостами. Я обновил вопрос и заголовок, чтобы отразить. Спасибо!   -  person David Mancini    schedule 16.08.2018
comment
Просто для дополнительного разъяснения цель этого вопроса — выяснить, почему эта функция работает / не работает в Windows 10, в частности. Именно поэтому он в названии.   -  person David Mancini    schedule 16.08.2018
comment
И заголовки не должны содержать тегов. Для этого и существуют теги. Сайты Stack Exchange имеют обширную систему тегов, которая позволяет пользователям определять, какие темы затронуты в вопросе, смотреть или игнорировать определенные темы, сужать свой поиск до определенной области... meta.stackexchange.com/questions/19190/   -  person zaggler    schedule 16.08.2018
comment
Это не просто тег, это материальная часть вопроса. Я мог бы также легко пометить его как Windows 8.1, потому что это было упомянуто в вопросе, но это не главное. Дело в том, что это не работало в Windows 10, поэтому оно и указано в заголовке.   -  person David Mancini    schedule 16.08.2018
comment
Кросс-постинг не разрешен. См. раздел Разрешена ли перекрестная публикация вопроса на нескольких сайтах Stack Exchange, если вопрос соответствует теме каждого сайта?. Вам лучше быстро решить, удалить ли этот вопрос или другой. В противном случае сообщество решит за вас ;-)   -  person robinCTS    schedule 17.08.2018


Ответы (3)


Так получилось, что я попался на одну из самых старых уловок в книге. Мне нужно было выполнить полную перезагрузку после изменения одного из ключей реестра.

Итак, для меня, чтобы всплывающие подсказки появлялись в Windows 10, нужно было следующее:

  1. Откройте regedit.exe

  2. Перейдите к HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced

  3. Установите (или добавьте) EnableBalloonTips (как REG_DWORD) и установите значение 1

  4. Перезагрузить.

Вуаля. Проблема решена.

person David Mancini    schedule 15.08.2018
comment
Кроме того, для справки, для элемента GPO User ConfigurationAdministrative TemplatesStart Menu and Taskbar ›› Disable showing balloon notifications as toasts необходимо установить значение Enabled, если вы отключили отправку уведомлений в центре уведомлений или других приложениях в приложении «Настройки», иначе ничего не будет отображаться. - person David Mancini; 25.08.2020

Я обнаружил, что, несмотря на то, что я указал значок в коде, мне также пришлось сначала добавить значок в свойство notifyIcon1.icon.

person Andrew    schedule 11.11.2018

В моем случае ответа Дэвида Манчини было недостаточно, мне также пришлось включить Получать уведомления от приложений и других отправителей в разделе «Настройки» -> «Система» -> «Уведомления и действия» введите здесь описание изображения

person MIHOW    schedule 21.06.2021