由Windows远程桌面想到的复制粘贴问题

  相信有很多人和我一样,一直以来都对Windows系统的复制(粘贴)问题充满了困惑:为什么将文件(夹)从一个目录复制到另一个目录时,若再运行其它程序,系统的反应明显就会变迟钝,而且反应速度快慢似乎与所复制(拷贝)的文件(夹)大小成反比。难道果真如某些观点所述:在复制文件(夹)时,系统首先将源数据复制到剪贴板(内存)中,然后再由剪贴板(内存)粘贴到目标处。假设这种观点成立,那么为什么仅有256MB的物理内存的系统却可以复制多达几个G的文件(夹)呢?按照上述观点,本来应该发生类似数据溢出的错误啊?难道它们借用硬盘作为虚拟内存进行操作,可是也不对呀,明明主机的虚拟内存只设置为768MB大小(图1),按理说怎么也容不下这么大的文件(夹)啊?这到底是怎么一回事?]


由Windows远程桌面想到的复制粘贴问题

图 1


  最近,笔者在使用Windows XP远程桌面进行复制(粘贴)操作时,发现一个有趣的现象:如果要从远程桌面系统中将一个文件复制到本地桌面系统来(比如名为1.txt的记事本文档),在远程桌面系统的资源管理器中选中该文件,然后用右键菜单中的复制命令或是组合快捷键Crtl+C来复制该文件(图2),在本地桌面系统的资源管理器中是无法进行任何粘贴操作的;但是如果先用记事本打开该文件,用Crtl+A选中全部内容,接着在记事本中用右键菜单的复制命令或Crtl+C复制(图3),再切换到本地桌面系统,打开记事本,用右键菜单的粘贴命令或Crtl+V即可将所复制的内容粘贴至记事本中了,之后就可以将其保存为1.txt的文档。利用这样“曲线救国”似的迂回策略,可以实现将文件从远程桌面系统复制到本地桌面系统的目的。


由Windows远程桌面想到的复制粘贴问题

图 2

由Windows远程桌面想到的复制粘贴问题

图3


  上述的情况同样也发生在Word、Excel等文档、BMP等图片文件中。这个小问题激发了笔者的兴趣。经过对这一现象进一步的深入研究,总算有了些许认识,不揣冒昧,写下来与大家一起商榷。


  或许下面的两个实验,能使大家对复制(粘贴)有更直观的认识,这里同样以复制1.txt这个文档为例。



  1. 首先在远程桌面系统中,用记事本打开该文档,按下Crtl+A选中全部内


  容,接着用右键菜单中的复制命令或Crtl+C进行复制;


  2. 按下Win+R组合键,打开运行框,输入Clipbrd.exe,打开剪贴簿查看器,


  查看发现当前剪贴板中的内容为刚才所复制的文档内容(图4);


由Windows远程桌面想到的复制粘贴问题(2)

图 4


  3. 切换到本地桌面系统,用步骤2中的方法也打开剪贴簿查看器,可以发


  现其内容与远程桌面系统中剪贴板的内容完全一致;


  4. 打开记事本就可以粘贴剪贴板中的全部内容了。


  那么为什么在资源管理器中,用右键菜单的复制命令或Crtl+C不能将文件直


  接从远程桌面系统复制到本地桌面系统呢?用上述相似的方法同样可以找出原因。


  1.在远程桌面系统的资源管理器中,选中该文档,然后用右键菜单的复制命令或Crtl+C进行复制;


  2.打开运行框,输入Clipbrd.exe,查看发现远程桌面系统的剪贴板程序中的内容为该文件的实际路径(图5);


由Windows远程桌面想到的复制粘贴问题(2)

图 5


  3.回到本地桌面系统,也打开剪贴板,发现其内容为“剪贴簿查看器无法以当前格式显示该信息。要查看该信息,请尝试将其粘贴到文档中”(图6)。


由Windows远程桌面想到的复制粘贴问题(2)

图 6


  这就很好地解释了为什么通过资源管理器的右键菜单复制命令或组合快捷


  键Crtl+C不可以直接将文件(夹)从远程桌面系统复制到本地桌面系统的原因了。因为在远程桌面系统的资源管理器中,在D盘根目录下确实存在1.txt这么一个文件,而本地桌面系统只会根据本地桌面系统中的剪贴板提供的文件路径信息进行复制,而实际上该剪贴板中并不存在任何文件信息,所以就无法进行粘贴操作。通过查看剪贴簿查看器还可以得出为什么系统可以复制(粘贴)远大于物理内存的文件(夹),因为这里剪贴板中存放的同样是文件路径信息。