[prg] уведомления из программы пользователям nvda

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

Ответить   Thu, 15 Apr 2021 08:34:31 +0300 (#3668383)

 

Ответы:

дело в том что на данный момент программа выводит уведомления в системный
трей через notifyIcon и джоз все прекрасно озвучивает читая их, а вот nvda
молчит будто их нет.
мне кажется что youtubeMy выводит их не через выше упомянутые методы.

Здравствуйте.
Чтобы NVDA ловила сообщения в системном трее в ее настройках надо ткнуть
какую-то галку.
youtubeMy выводит сообщения через COM интерфейс JAWS и NVDA. Для последней
нужна dll-ка. Тупо шарит по процессам и если найдет запущенные приведенные
скринридеры, то отдает им сообщение. Вывод на JAWS в данной рассылке
подсказал Анатолий, а на NVDA Никита. Спасибо им еще раз. Если нужен пример
кода на C#, пишите, поделюсь.
Если работать со скринридером от Майкрософта или любым другим, то youtubeMy
должна молчать.
Сам бы хотел понять как одним разом выводить стандартное сообщение и чтобы
его понимали скринрдер работающий в данный момент.
Может опять кто подскажет. Есть же целое пространство имен accessibility .
Читал читал, пробовал, но так и не смог заставить что-нибудь произнести
через скринридеры.
Удачи!

Ответить   Fri, 16 Apr 2021 09:18:32 +1000 (#3668401)

 

день добрый, Alexandr.
если вам не трудно, приведите пожалуйста пример вывода уведомлений.

Ответить   Fri, 16 Apr 2021 15:03:16 +0300 (#3668427)

 

если вам не трудно, приведите пожалуйста пример вывода уведомлений.

Здравствуйте.
Типа кукушка:
https://yadi.sk/d/z0ZDDMjDryVPxg
Зуки через 15, 30, 45 и 60 минут. Если удалить определенный wav файл, то в
данном промежутке времени кукукать не будет. Библиотека для NVDA в папке
Debug.
Не помню версию .NET давно писал, и смотреть лень, но работает. Комментарии
присутствуют. Разберетесь.
Удачи!

Ответить   Sat, 17 Apr 2021 06:35:26 +1000 (#3668443)

 

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

Ответить   Sat, 17 Apr 2021 08:31:20 +0300 (#3668455)

 

привет, задержка не всегда помогает, вернее помогает через раз.
пример, программа выводит скринридеру уведомление и после открывает новое
окно.
в nvda с библиотекой nvdaControllerClient32.dll, то работает то не работает,
nvda просто тупо не успевает произнести уведомление, выставление задержки
дает не стабильный результат.
то есть nvda может произнести уведомление полностью, может успеть только
часть, а может тупо молчать всю задержку и начать произносить тогда когда
программа открывает новое окно и nvda замолкает опять естественно.
конечно это может зависит от настроек моей nvda, но я так её настроил и где
гарантия что и другие пользователи не настроили nvda также.
как же выводить уведомления nvda чтоб она их воспроизводила корректно?
при этом программа будет продолжать выполнение своих задач.
ведь джоз во всех вариантах воспроизведения уведомлений работает всегда
одинаково стабильно!!!

Ответить   Sat, 17 Apr 2021 09:34:28 +0300 (#3668460)

 

Здравствуйте.
Вы код видели? Описалки где-нибудь читали?
Вы в мной приведенном коде заметели строку заставить NVDA сначала заткнутся,
а затем произнести отправленное?
В JAWS так и вообще можно любые скрипты выполнять, а не только SayStrimg.
УУдачи!

Ответить   Sat, 17 Apr 2021 21:43:43 +1000 (#3668467)

 

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

Ответить   Sat, 17 Apr 2021 19:01:23 +0300 (#3668470)