Обзор инструментов NVDA API |
| (По материалам официального сайта программы) |
| Авторы: | © Никита Цейковец , Анатолий Камынин |
| Дата публикации: | 2011 |
Для взаимодействия других приложений с программой экранного доступа 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#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) запустите интерпретатор командной строки cmd.exe и, перейдя в каталог, где расположен файл test.exe, наберите:
test.exe "Привет, мужики!"
| Проект осуществлен при поддержке компании RU-CENTER | |||
| Распространение материалов сайта означает, что распространитель принимает условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2012 |
| ||