【发布时间】:2016-07-12 23:24:00
【问题描述】:
我正在尝试编写一个 GTK/C 应用程序,将一些文件放在 Gtk 剪贴板上,以便使用 Nautilus 的用户可以粘贴它们。 有一个很好的example of Gtk Clipboard local file copy and paste on stackoverflow。 不幸的是,我需要粘贴的文件不在本地磁盘上,并且无法通过像 file:// 这样的标准 GVFS URI 方案访问 只有我的应用程序在建立 TCP 连接、验证并打开额外通道后才能访问这些源文件。
如何在 Gtk 剪贴板上将这些应用程序管理的远程文件与 Nautilus 一起粘贴?未来,Dolphin/KDE 也一样?
谷歌搜索后,我想到了以下想法:我需要开发一个新的 gvfs URI 方案处理程序(即:my-app://)。但是很难找到示例或文档。这是唯一的方法吗?而且,我的应用程序是否可以在不更改任何外部系统配置文件的情况下将自己注册为临时 GVFS URI 方案处理程序?怎么样?
【问题讨论】:
-
我在 vala 中写了一个示例,但它可能仍然有用:stackoverflow.com/questions/50319438/…
-
好的,通过您的示例,您可以在剪贴板上放置一个 URI。在您的特定情况下,它们是本地文件系统上的文件,例如“/home/lukas/tmp/test.txt”。但是,如上所述,我在文件系统上没有文件:我想放在剪贴板上的内容流是由应用程序在用户想要将其粘贴到 nautilus 时动态生成的。在 Windows 中似乎有一个函数:RegisterClipboardFormat(CFSTR_FILECONTENTS),它允许 Windows 资源管理器粘贴应用程序生成的流。但不是鹦鹉螺。
标签: c gtk clipboard gnome nautilus