Клиент удалённого доступа
Описание. Приложение-клиент позволяет получить доступ к удаленному рабочему столу по протоколам RDP и VNC и взаимодействовать с ними.
Функционал и компоненты примера. Приложение реализует следующие возможности:
- Подключение к удаленному рабочему столу по протоколу RDP - подпроект RDP
- Подключение к удаленному рабочему столу по протоколу VNC - подпроект VNC
- Сохранение и последующее редактирование конфигураций подключений.
- Взаимодействие с удаленным рабочим столом посредством физической мыши, виртуального курсора, панели зума, физической и системной клавиатуры.
Приложение использует сторонние библиотеки:
- RDP: FreeRDP doc
FreeRDP 2.10.0 - VNC: VNC doc
LibVNCServer-0.9.14
Статус сборки:
Содержание
- Содержание
- Совместимость
- Особенности сборки
- Информация о ветках
- Установка и запуск
- Скриншоты
- Варианты использования
- Структура проекта
- Правила использования и участие в разработке
Совместимость
Проект совместим с актуальными версиями ОС Аврора.
Особенности сборки
Данный пример-приложение собирается с помощью Аврора SDK: Документация) Сборка проекта осуществляется с помощью Ninja. Чтобы избежать ошибок при сборке, необходимо выполнить следующие действия:
- Установить для
Начальных параметров CMakeзначение-GNinjaвНастройках сборки; - Нажать на
Re-configure with Initial Parameters, чтобы перенастроить проект.
Информация о ветках
Установка и запуск
Проект устанавливается и запускается обычным образом с помощью Аврора SDK: Документация.
Снимки экранов

Варианты использования
Приложение протестировано на работоспособность следующих возможностей:
- Приложение позволяет подключаться (и отключаться) к удаленному рабочему столу по протоколам RDP и VNC.
- Приложение позволяет задавать имя хоста, порт, имя пользователя и пароль.
- Приложение позволяет установить разрешение экрана удаленного рабочего стола перед подключением.
- Приложение позволяет сохранять несколько конфигураций для подключения (включая имя хоста, порт, имя пользователя, разрешение экрана и тип подключения) и использовать их повторно.
- После успешного подключения программа отображает экран удаленного рабочего стола.
- Приложение позволяет взаимодействовать с экраном удаленного рабочего стола с помощью курсора мыши и сенсорных жестов.
- Приложение позволяет передавать на удаленный рабочий стол нажатия клавиш клавиатуры.
- Приложение позволяет увеличивать и уменьшать изображение удаленного экрана с помощью движение двумя пальцами в разные стороны.
- Приложение позволяет перетаскивать изображение удаленного экрана с помощью жеста касания.
Настройки подключения
На стартовой странице приложения необходимо задать следующие параметры для выполнения соединения:
- Тип подключения - RDP или VNC.
- Разрешение экрана (можно игнорировать, если сервер удаленного рабочего стола не поддерживает установку разрешения):
- Использовать разрешение экрана телефона - разрешение устройства будет передано на удаленный рабочий стол.
- Использовать удаленное разрешение - на устройстве будет использоваться разрешение удаленного рабочего стола.
- Указать разрешение вручную - пользователь задает разрешение для использования на устройстве и удаленном экране.
- Адрес - IP-адрес сервера удаленного рабочего стола.
- Порт - порт сервера удаленного рабочего стола.
- Имя пользователя - имя пользователя удаленной машины.
- Пароль - пароль пользователя удаленной машины.
VNC
VNC-соединение тестируется со следующими VNC-серверами: TightVNC, TigerVNC, TurboVNC и UltraVNC.
Особенности раскладки клавиатуры
Серверы TightVNC, TigerVNC и TurboVNC корректно работают с раскладками клавиатур. Все раскладки физической клавиатуры клиента корректно передаются и отображаются на серверах при условии, что раскладки клиента и сервера совпадают при подключении. Переключение раскладки на сервере также выполняется корректно.
Однако при соединении с сервером UltraVNC раскладки клавиатуры имеют особенности.
-
Из всех раскладок клавиатуры на клиенте на сервер передаются только латинские символы. При переключении на кириллическую раскладку ввод символов не происходит.
-
Переключение раскладки на сервере работает корректно, если на клиенте и на сервере включена латинская раскладка. В этом случае можно переключить раскладку на сервере, например, переключить с латиницы на кириллицу, и ввод будет выполняться соответствующей серверной раскладкой.
Такое поведение характерно не только для данного приложения, но и для других VNC-клиентов: TightVNC, TightVNC, TurboVNC и самого клиента UltraVNC.
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.
- Каталог app описывает подпроект, содержащий исходный код приложения:
- Файл CMakeLists.txt описывает структуру подпроекта приложения для системы сборки CMake.
- Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог cover содержит реализации обложек приложения.
- Каталог icons содержит дополнительные иконки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Каталог components содержит пользовательские компоненты пользовательского интерфейса.
- Файл RemoteDesktopClient.qml предоставляет реализацию окна приложения.
- Каталог src содержит исходный код на C++.
- Файл main.cpp является точкой входа в приложение.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.RemoteDesktopClient.desktop определяет отображение и параметры запуска приложения.
- Каталог rdp описывает подпроект, содержащий исходный код библиотеки FreeRDP.
- Каталог FreeRDP содержит исходный код библиотеки FreeRDP 2.10.0.
- Файл CMakeLists.txt описывает структуру подпроекта rdp для системы сборки CMake.
- Каталог vnc описывает подпроект, содержащий исходный код библиотеки VNC.
- Файл libvncserver содержит исходный код библиотеки LibVNCServer-0.9.14.
- Файл CMakeLists.txt описывает структуру подпроекта vnc для системы сборки CMake.
- Файл CMakeLists.txt описывает структуру приложения для системы сборки CMake.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.RemoteDesktopClient.spec используется инструментом rpmbuild.
Правила использования и участие в разработке
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Лицензионное соглашение с участником Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.