我尝试了 10 种不同的 Windows 剪贴板管理器,但没有一种能够识别音频程序中的某些自动化数据(特别是 Cubase 8 中的自动化节点值)。NirSoft 的 InsideClipboard 是一款据称可以准确显示剪贴板中当前内容的程序。是的,它可以处理 Cubase 中的文本、图像、文件列表甚至 XML 音频剪辑数据。但我的自动化数据(我可以使用 ctrl+v 成功粘贴)在 InsideClipboard 中显示为 EMPTY。
然后,如果我在 InsideClipboard 中选择文件/清除,则 ctrl+v 在 Cubase 中将不再起作用。因此 InsideClipboard 可以清除数据,但它仍显示为空。
我想要实现的是,我需要一些剪贴板内容,可以用脚本调用这些内容。但我无法调用任何内容,因为似乎没有剪贴板管理器可以识别这些数据。
理论上很简单,但实际操作起来却很困难。哪个剪贴板管理器能够真正支持剪贴板内的任何内容?
顺便说一句,我注意到,如果我在 Photoshop 中复制一个小图像区域,那么 InsideClipboard 将显示图像大小等信息。但如果我复制一个巨大的图像区域,它将只显示为 CF_METAFILEPICT,没有任何详细信息。但它仍然会显示。使用我的 Cubase 自动化数据,它只是空的。
答案1
尽你所能注册您自己的剪贴板格式或使用私人剪贴板格式(特定于应用程序)编写一个可以识别所有剪贴板格式的剪贴板管理器可能有点困难;)
我猜你的自动化数据剪贴板格式可以是私有格式。如果你能找到它的 ID,并且它在 CF_PRIVATEFIRST ( 0x0200
) 到 CF_GDIOBJLAST ( 0x03FF
) 范围内这是私人的。
作为CF_METAFILEPICT是:
处理由 METAFILEPICT 结构定义的图元文件图片格式。通过 DDE 传递 CF_METAFILEPICT 句柄时,负责删除 hMem 的应用程序还应释放 CF_METAFILEPICT 句柄引用的图元文件。
据我所知,NirSoft 估计如果你报告了错误,他们会修复它。我猜在其他管理器中,这些巨大的图像可以正确显示 - 如果不显示,则可能是元数据损坏。
由于您可以使用 WinAPI 函数清除剪贴板EmptyClipboard()
,因此在执行此操作后,不要指望看到任何粘贴回来的数据。
答案2
问题是,并非所有程序都会将您复制的内容放在 Windows 剪贴板上。如果 Cubase 或任何其他程序都有您复制和粘贴的内容,并且这些数据与其他任何软件都无关,那么他们为什么要费尽心思将其放在 Windows 剪贴板上,而只需在程序内部完成即可?
像 Spartan 这样的剪贴板管理器,顺便说一句,它是最好的……
http://m8software.com/clipboards/spartan/clipboard-manager.htm
仅捕获 Windows 剪贴板上的内容。