将字节数组复制到剪贴板中

时间:2015-04-17 14:05:06

标签: c# file bytearray share clipboard

我试图做一个客户端 - 服务器程序,在该程序中可以共享剪贴板的内容。

现在,如果内容类型是音频,图片或文字,我可以分享它。 我的想法是我转换字节数组中的内容,发送它,将其转换回原始类型(StreamBitmapSourcestring)并将其注入客户端剪贴板中使用方法Clipboard.SetAudioClipboard.SetImageClipboard.SetText

我的问题是剪贴板中有一些文件。我使用方法Clipboard.GetFileDropList来获取文件列表,对于列表中的每个文件,我将其转换为字节数组并将其发送到客户端。如何在客户端剪贴板中注入此字节数组?

我知道方法Clipboard.SetFileDropList,但它要求我提供文件列表,因为客户端上不存在该文件,所以我无法使用它。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

为了使客户端将文件视为可用文件,它们需要以某种方式存在于客户端文件系统上,因为剪贴板在设置剪贴板内容时需要一个文件名列表。

这可以通过将数据作为流传输到客户端,然后使客户端立即将该流解包到临时文件夹来完成,该文件夹的路径可通过以下方式获取:

var temp = Environment.ExpandEnvironmentVariables("%TEMP%");

完成并放置文件后,您可以将这些文件放在剪贴板上,就好像它们是复制的那样。

请注意,支持文件复制/粘贴,而不是选择" transfer"由于文件的大小,文件的运行速度可能比其他操作慢得多。