Nic*_*llo 5 c# clipboard share bytearray file
我正在尝试做一个客户端 - 服务器程序,在该程序中可以共享剪贴板的内容.
现在,如果内容类型是音频,图像或文本,我可以共享它.这个想法是,我转换成字节数组的内容,发送,将其转换回其原始类型(Stream,BitmapSource或string),并通过使用方法注入它在客户端剪贴板Clipboard.SetAudio,Clipboard.SetImage或者Clipboard.SetText.
我的问题是剪贴板中有一些文件.我使用该方法Clipboard.GetFileDropList获取文件列表,对于列表中的每个文件,我将其转换为字节数组并将其发送到客户端.如何在客户端剪贴板中注入此字节数组?
我知道有方法Clipboard.SetFileDropList,但它要求我提供文件列表,因为客户端上不存在该文件我无法使用它.
我怎么解决这个问题?
为了使客户端将文件视为可粘贴,它们需要以某种方式存在于客户端文件系统上,因为剪贴板在设置剪贴板内容时需要文件名列表。
这可以通过将数据作为流传输到客户端,然后让客户端立即将该流解压到临时文件夹来完成,该文件夹的路径可通过以下方式获取:
var temp = Environment.ExpandEnvironmentVariables("%TEMP%");
Run Code Online (Sandbox Code Playgroud)
完成后,文件就位后,您可以将这些文件放置在剪贴板上,就像它们是复制的文件一样。
请注意,由于文件可能会变得很大,支持文件复制/粘贴而不是“传输”文件的选项可能比其他操作运行得慢得多。
| 归档时间: |
|
| 查看次数: |
1355 次 |
| 最近记录: |