|
Для взаимодействия других приложений с программой экранного доступа NVDA её разработчики предоставляют специальную библиотеку NVDA Controller, включающую набор API функций. Библиотека позволяет сторонним программам взаимодействовать с NVDA для того, чтобы использовать функционал screenreader'а в отношении синтеза речи и брайлевского вывода. Данный API-клиент реализован в виде динамической библиотеки, функции которой могут быть вызваны из языка программирования, поддерживающего поиск и вызов любого символа в DLL (например, ctypes в Python), либо посредством традиционных способов загрузки и связывания DLL (например, в языках C и C++). Загрузить NVDA Controller можно по ссылкеhttp://www.nvda-project.org/nvdaControllerClient/nvdaControllerClient_20100219.7z. Размер файла 121 Кб. Архив включает:
API-клиент NVDA Controller распространяется на некоммерческой основе на условиях лицензии LGPL 2.1, с которой можно ознакомиться в файле "license.txt" поставляемого архива. В общих словах, это означает, что вы можете использовать NVDA Controller в любом приложении. Однако если вы вносите изменения в исходный код NVDA Controller, то должны предоставить эти изменения сообществу NVDA на условиях той же лицензии. NVDA Controller поможет разработчикам программного обеспечения, заинтересованным в поддержке специальных возможностей, реализовать в своих продуктах максимально тесное взаимодействие с набирающим всё большую популярность свободным screenreader'ом NVDA. Однако разработчики должны понимать оборотную сторону такого решения, ориентированного исключительно на одну программу экранного доступа. Более универсальным (и более трудоемким) является реализация в приложениях поддержки технологий доступа MSAA и UI-Automation, что обеспечит доступность приложений не для одного, а для большинства современных screenreader'ов на платформе MS Windows. Поддерживаемые функцииНа данный момент NVDA Controller имеет версию 1.0 и поддерживает четыре функции. Все функции возвращают ноль в случае успешного выполнения и ненулевое значение в случае ошибки. Ошибка может означать, что не удалось связаться с NVDA или что функция была вызвана некорректным образом. Возвращаемые функциями коды ошибок являются стандартными кодами ошибок Windows.
Пример использованияНиже приведен пример использования клиентского API NVDA Controller в консольном приложении, написанном на языке программирования C. Это приложение в качестве параметра командной строки принимает текст, который озвучивает средствами NVDA и отображает на брайлевском дисплее. Для простоты не выполняются некоторые проверки на ошибки. #define UNICODE #include <windows.h> #include "nvdaController.h" /* Подключаем библиотеку импорта */ /* То же самое можно сделать в настройках проекта */ /* используемой среды разработки */ #pragma comment(lib, "nvdaControllerClient32.lib") int wmain(int argc, wchar_t* argv[]) { if (argc < 2) { MessageBox(0,L"Не задан текст для вывода!",L"Ошибка",0); return 1; } /* Проверяем, запущена ли программа NVDA */ /* и пытаемся связаться с ней */ if(0 != nvdaController_testIfRunning()) { MessageBox(0,L"Не удалось связаться с NVDA!",L"Ошибка",0); return 2; } /* Вывод речевого сообщения */ nvdaController_speakText(argv[1]); /* Вывод сообщения на брайлевский дисплей */ nvdaController_brailleMessage(argv[1]); return 0; } После компиляции и сборки приложения (например, под именем test.exe) запустите интерпретатор командной строки test.exe "Привет, мужики!" |
|||||||||
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети