R50 e9c927ed4316abc7e2bb61356ecd08b8
Профессиональная разработка ПО - Web, Desktop, System, Embedded

RDP Client

Добавлено 19 мар 2024 в 01:48
RDP клиент с фирменным стилем.
- Двух факторная авторизация
- Динамический список серверов, загружаемый с сервера
- Параметры входа на RDP сервер, тоже загружаемые с сервера в зашифрованном виде
- Подключение к выбранному RDP серверу в один клик
- Поддержка HiDPI
- Поддержка нескольких мониторов
- Разворачивание, сворачивание и полноэкранный режимы
- Автообновление

C# + WPF + Font Awesome SVG иконки, а так же фирменный стиль тоже в векторном формате (логотип и прочее)

Системные библиотеки:
- MsTsc - MS RDP Library

Библиотеки:
- Newtonsoft.Json
- NLog
- Prism
- FontAwesome

Какие были проблемы:
- Получение и добавление бинарных файлов библиотеки MsTsc в проект WPF - решено ручным добавлением в конфигурации проекта GUID на нужные бинарные файлы, при чем в виде отдельного проекта, а уже этот проект добавлять в основной проект (иначе вылезают баги)
- Использование MsTsc библиотеки в WPF проекта без багов - решено выносом всей RDP зависимой логики и зависимостей в WinForms проект, который подключается уже в WPF
- Мультимониторная конфигурация и полноэкранный режим - самая большая проблема: из-за разных механизмов работы HiDpi и масштабирования в разных версиях винды, как результат - не работающие основные кнопки управления, а так же другие баги. Большей частью эти проблемы решить удалось использованием окна MsTsc из проекта WinForms, импортированного в WPF, а все остальные элементы управления были реализованы с нуля на WPF, в т.ч. элементы управления окном как в оконном режиме, так и в многоконной конфигурации и полноэкранном режимах.

И вот это все было все равно проще, чем раскапывать окаменелости типа FreeRDP без какой-либо документации.
2791f5a63c 484760ac9e 285ac659bb 201bb7c36a