NVDAControlEx (Расширенный интерфейс для управления NVDA из внешних приложений)
Автор:- Исходный код дополнения: Посетить Web-сайт NVDAControlEx
Краткое описание
Дополнение NVDA Control Ex предоставляет интерфейс именованного канала (\.\pipe\NVDAControlPipe) для внешних приложений, позволяющий отправлять команды в NVDA.
Эти команды могут управлять речевым выводом, брайлевским дисплеем и другими функциями NVDA.
Основные возможности:
Обмен данными через именованный канал:
Дополнение создаёт именованный канал (\.\pipe\NVDAControlPipe) для получения команд от внешних приложений.
Команды отправляются в виде строк и обрабатываются плагином.
Многие другие функции и примеры описаны в справочном руководстве.
Основная информация
| Название | Версия | Совместимость с API NVDA | Последняя протестированная версия NVDA | Минимальная версия NVDA | Дата загрузки в каталог | Размер | Лицензия |
|---|---|---|---|---|---|---|---|
| NVDAControlEx | 0.1 | 2025.1 | 2025.1 | 2024.1 | 27-06-2025 16:45:36 | 13 Кб. | GPL v2 |
Журнал изменений
Подробнее
Не найдено
Скачать
NVDAControlEx-V.0.1.nvda-addon
⬇ Перейти к истории версий 🔝 Назад к оглавлениюИнформация о локализации на русский язык
- Локализация от: Разработчик или другой переводчик
- Перевод: Да
- Перевод интерфейса: Да
- Перевод справки: Да
Разделы
🔝 Назад к оглавлениюСправка
Подробнее
Документация дополнения NVDA Control Ex
Обзор
Дополнение NVDA Control Ex предоставляет интерфейс именованного канала (\\.\pipe\NVDAControlPipe) для внешних приложений, позволяющий отправлять команды в NVDA. Эти команды могут управлять речевым выводом, брайлевским дисплеем и другими функциями NVDA.
Основные возможности
-
Обмен данными через именованный канал:
- Дополнение создаёт именованный канал (
\\.\pipe\NVDAControlPipe) для получения команд от внешних приложений. - Команды отправляются в виде строк и обрабатываются плагином.
- Дополнение создаёт именованный канал (
-
Поддерживаемые команды:
- Дополнение поддерживает следующие команды:
speak: Озвучивает предоставленный текст.speakSpelling: Произносит текст по буквам.speakSsml: Озвучивает контент в формате SSML (Speech Synthesis Markup Language).pauseSpeech: Приостанавливает или возобновляет речевой вывод.cancelSpeech: Отменяет текущий речевой вывод.braille: Отображает предоставленный текст на брайлевском дисплее.active: Отвечает "NVDA" для подтверждения активности дополнения.
- Дополнение поддерживает следующие команды:
-
Многопоточная архитектура:
- Дополнение использует отдельный поток для прослушивания входящих подключений и обработки команд, что обеспечивает отзывчивость NVDA.
Как использовать
1. Установка дополнения
- Загрузите дополнение
NVDAControlExиз репозитория GitHub. - Установите его в NVDA.
2. Активация дополнения
- Убедитесь, что дополнение включено в менеджере дополнений NVDA.
3. Отправка команд через именованный канал
- Внешние приложения могут отправлять команды в NVDA, записывая данные в именованный канал (
\\.\pipe\NVDAControlPipe). - Команды отправляются в виде строк в следующем формате:
command_name arg1 arg2 ... - Пример: Чтобы NVDA произнёс "Привет, мир!", отправьте следующую команду:
speak "Привет, мир!" 0 -1
4. Поддерживаемые команды и аргументы
| Команда | Аргументы | Описание |
|---|---|---|
speak |
text, reason (unused), symbolLevel |
Озвучивает предоставленный текст. |
speakSpelling |
text, locale, useCharacterDescriptions |
Произносит текст по буквам. |
speakSsml |
ssml, markCallback (unused), symbolLevel |
Озвучивает контент в формате SSML. |
pauseSpeech |
switch |
Приостанавливает или возобновляет речевой вывод. |
cancelSpeech |
None | Отменяет текущий речевой вывод. |
braille |
text |
Отображает предоставленный текст на брайлевском дисплее. |
active |
None | Отвечает "NVDA" для подтверждения активности дополнения. |
Пример использования
Отправка команды из внешнего приложения
Для отправки команды в NVDA можно использовать любой язык программирования, поддерживающий именованные каналы Windows. Ниже приведён пример на языке C: Я использую интерфейс из этого репозитория Эти файлы можно найти в директории Dep: nvda_control.h и nvda_control.c.
#include <nvda_control.h>
int main() {
// Шаг 1: Подключение к именованному каналу NVDA
if (nvda_connect() != 0) {
fprintf(stderr, "Failed to connect to NVDA.\n");
return -1;
}
// Шаг 2: Отправка команды для озвучивания текста
const char* textToSpeak = "Hello, this is a test of the NVDA control interface.";
int symbolLevel = NVDA_SYMBOL_LEVEL_ALL; // Использовать всю пунктуацию
if (nvda_speak(textToSpeak, symbolLevel) != 0) {
fprintf(stderr, "Failed to send speak command to NVDA.\n");
nvda_disconnect();
return -1;
}
// Опционально: Приостановка речевого вывода для демонстрации
if (nvda_pause_speech(1) != 0) {
fprintf(stderr, "Failed to pause speech.\n");
}
// Ожидание несколько секунд (для демонстрации)
Sleep(3000); // Ожидание 3 секунды
// Возобновление речевого вывода
if (nvda_pause_speech(0) != 0) {
fprintf(stderr, "Failed to unpause speech.\n");
}
// Шаг 3: Отключение от NVDA
nvda_disconnect();
return 0;
}
## Устранение неполадок
1. **Дополнение не отвечает**:
- Убедитесь, что дополнение `NVDAControlEx` установлено и включено в NVDA.
- Перезапустите NVDA после установки дополнения.
2. **Проблемы с подключением к именованному каналу**:
- Убедитесь, что внешнее приложение имеет корректные права доступа к именованному каналу.
- Проверьте наличие ошибок в журнале NVDA (доступ через "Просмотр лога" в NVDA).
3. **Ошибки выполнения команд**:
- Убедитесь, что команда и аргументы корректно отформатированы.
- Проверьте журнал NVDA на наличие сообщений об ошибках, связанных с выполнением команд.
История версий
История версий
| Версия файла | Тестируемая версия NVDA | Минимальная версия NVDA | Размер файла (КБ) | Ссылка на загрузку |
|---|---|---|---|---|
| 0.1 | 2025.1 | 2024.1 | 13 | NVDAControlEx-V.0.1.nvda-addon |