1

Я понимаю, как что-то может быть скопировано и вставлено на машине или по сети.

Но как работает копирование и вставка через сеанс RDP, когда вы не подключены к сети других машин?

Я знаю, как это сделать, но какие механизмы стоят за этим?

1 ответ1

4

В Windows есть API-интерфейсы, которые позволяют вам просматривать содержимое буфера обмена (и получать уведомления при изменении содержимого). Он также имеет API-интерфейсы, которые позволяют размещать элементы в буфере обмена.

RDP взаимодействует с буфером обмена как на сервере, так и на клиенте. Когда вы копируете что-то, RDP синхронизирует элемент в буферах обмена на обеих машинах, что позволяет вам вставить его либо (я не уверен, передает ли он данные во время копирования или во время вставки; либо это возможно),

Кроме того , вы «подключены к сети другой машины». Не так напрямую, как локальная сеть, но у вас должно быть какое-то сетевое соединение, чтобы RDP работал вообще. В конце концов, Интернет - это всего лишь одна гигантская сеть.

См. Также (обратите внимание, что API, упомянутые в этих сообщениях в блоге, являются более старыми; Vista представила более новые API буфера обмена, но основной принцип аналогичен):

http://blogs.msdn.com/b/oldnewthing/archive/2008/06/04/8572362.aspx
http://blogs.msdn.com/b/rds/archive/2006/11/16/why-does-my-shared-clipboard-not-work-part-1.aspx

В локальном сеансе клиент TS находится в цепочке просмотра буфера обмена, а в удаленном сеансе приложение виртуального канала RDPCLIP находится в цепочке просмотра. Когда в локальном сеансе происходит обновление буфера обмена, клиент TS уведомляется и информирует RDPCLIP об изменениях, чтобы он мог распространить их в удаленном сеансе. Аналогичным образом, когда в удаленном сеансе происходит обновление буфера обмена, RDPCLIP уведомляется и информирует клиента TS об изменениях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .