【问题标题】:Gtk Ckipboard: pasting files from a source with custom URI schemeGtk Ckipboard:使用自定义 URI 方案从源粘贴文件
【发布时间】: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


【解决方案1】:

这是一个老问题,但我必须解决一个类似的问题。 通过创建自定义 fuse 文件系统,可以利用正常的剪贴板行为(kde 和 gnome 宣布文件复制到剪贴板的方式),并且只有在实际访问数据时才使用网络资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2015-10-06
    • 2013-12-19
    • 2016-03-22
    相关资源
    最近更新 更多