我试图做一个客户端 - 服务器程序,在该程序中可以共享剪贴板的内容。
现在,如果内容类型是音频,图片或文字,我可以分享它。
我的想法是我转换字节数组中的内容,发送它,将其转换回原始类型(Stream
,BitmapSource
或string
)并将其注入客户端剪贴板中使用方法Clipboard.SetAudio
,Clipboard.SetImage
或Clipboard.SetText
。
我的问题是剪贴板中有一些文件。我使用方法Clipboard.GetFileDropList
来获取文件列表,对于列表中的每个文件,我将其转换为字节数组并将其发送到客户端。如何在客户端剪贴板中注入此字节数组?
我知道方法Clipboard.SetFileDropList
,但它要求我提供文件列表,因为客户端上不存在该文件,所以我无法使用它。
我该如何解决这个问题?
答案 0 :(得分:3)
为了使客户端将文件视为可用文件,它们需要以某种方式存在于客户端文件系统上,因为剪贴板在设置剪贴板内容时需要一个文件名列表。
这可以通过将数据作为流传输到客户端,然后使客户端立即将该流解包到临时文件夹来完成,该文件夹的路径可通过以下方式获取:
var temp = Environment.ExpandEnvironmentVariables("%TEMP%");
完成并放置文件后,您可以将这些文件放在剪贴板上,就好像它们是复制的那样。
请注意,支持文件复制/粘贴,而不是选择" transfer"由于文件的大小,文件的运行速度可能比其他操作慢得多。