Мой вопрос касается захвата экрана на удаленном сервере с установленной Windows Vista или более поздней версии со всех рабочих столов (по умолчанию, экран UAC, Winlogon, заставка). Как добиться этого без входа пользователя локально или через RDP. Проблема в том, что изменения в Vista привели к изоляции служб Windows от настольных компьютеров. Я нашел некоторую информацию здесь и там, которая решает проблему:
но, к сожалению, я не вижу хорошего решения. Я хочу получить что-то вроде клона подключения к удаленному рабочему столу Windows. Другими словами, Windows-машина с каким-то сервером, к которому я могу подключиться удаленно и получить с него скриншоты.
Существует часть программного обеспечения под названием TightVNC это делает то, что мне нужно, но его источник находится в C ++ поэтому мне трудно найти основную идею о том, как преодолеть ограничения Windows. Может быть, кто-то может сказать?
Заранее благодарю за любую помощь.
Сервер TightVNC реализует протокол RFB. Этот сервис очень похож на RDP (протокол удаленного рабочего стола) от Microsoft, хотя и намного проще.
Сервер TightVNC дополнительно имеет свою собственную кодировку (называемую сжатой), а клиенты, поддерживающие кодировку, позволяют указывать сжатие и качество изображения.
Поймите, что «удаленные снимки экрана» не предоставляются ни по одному протоколу, как вы себе представляете. Графические обновления отправляются, и вы должны управлять кадровым буфером изображения и продолжать его обновлять (хотя вы можете попросить удаленный VNC-сервер каждый раз отправлять вам полное обновление, но даже тогда сервер разбивает «образ» на различные тезисы перед отправкой). Клиенты RDP немного сложнее (см. Проект FreeRDP).
Однако вашей целью является удаленный доступ без Microsoft RDP, доступной для вас. В этом случае вам просто понадобится служба VNC (например, TightVNC) на удаленном рабочем столе и клиент VNC (например, клиент TightVNC) в системе, к которой вы будете подключаться. За исключением конфигурации сети, вы должны быть готовы к работе.
Вы можете запустить процесс (exe) из службы, которая олицетворяет вошедшего в систему пользователя. Это позволяет вам сделать снимок экрана.
Вам понадобится отдельное приложение, чтобы сделать снимок экрана, так как он должен быть запущен в новом процессе.
Больше подробностей: https://stackoverflow.com/a/45095509/125406