Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
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