Я не знаю библиотеки, которая бы делала то, что вы хотите.
Если бы мне пришлось кодировать ваши требования, я бы, вероятно, использовал исходный код сервера TightVNC в качестве отправной точки. Я думаю, что у этого есть технология, чтобы сделать все в вашем списке, КРОМЕ ....
Я не уверен, что технически есть НИЧЕГО, что может сделать снимок экрана сеанса удаленного рабочего стола. Подумайте об этом: может быть несколько сеансов удаленного рабочего стола (процесс csrss.exe) с использованием одного и того же физического сервера удаленного рабочего стола. Если бы вы сидели перед машиной и смотрели на видеомонитор, вы бы ничего не увидели. Так что же вы ожидаете захватить? VNC собирает только то, что происходит с «настоящим» видео (не удаленным csrss.exe).