如何在不删除或更改任何内容的情况下将二进制内容加载到剪贴板?(Autohotkey)

4

我有一份二进制内容存储在文件中(包含以前的剪贴板内容),每次我尝试将其加载到剪贴板时,它会被修改(没有目的或添加代码)。

这个二进制内容代表了从 OneNote 复制到剪贴板上的组织段落。为了能够在以后使用,我使用以下方法将剪贴板二进制内容保存到 test.clip 文件中:

FileAppend, %ClipboardAll%, C:\My\Path\test.clip

然后,当我尝试使用以下方式将二进制文件test.clip的内容检索到剪贴板:

FileRead, Clipboard, *c C:\My\Path\test.clip

当我将内容粘贴到OneNote中时,我得到了不完整的段落,这些段落之前被复制并保存到二进制文件中。

我尝试检查旧的二进制文件test.clip与加载此文件后剪贴板内容之间的差异。我在检索test.clip后将新的剪贴板内容保存到test2.clip以检查是否有进行任何操作:

FileRead, Clipboard, *c C:\My\Path\test.clip
FileAppend, %ClipboardAll%, C:\My\Path\test2.clip

我比较了两个文件test.cliptest2.clip(预期应该相同)。我发现在将test.clip加载到剪贴板后,每次都会删除一块二进制代码(文件末尾标记为红色)。如下图所示: enter image description here 我该如何解决这个问题,以便加载存储在test.clip中的二进制剪贴板内容而不会从实际文件内容中删除或操纵任何内容?
1个回答

1
不要在此处使用%ClipboardAll%,只需使用%clipboard%
“剪贴板是一个内置变量,如果剪贴板的内容可以表示为文本,则反映当前Windows剪贴板的内容。相比之下,ClipboardAll 包含剪贴板上的所有内容,例如图片和格式。”- https://autohotkey.com/docs/misc/Clipboard.htm 再次引用文档中的话,我认为我看到了你的问题:“如果ClipboardAll无法检索一个或多个数据对象(格式),它们将被省略,但所有其余对象将被存储。”
举个例子:
F4::
FileAppend, %Clipboard%, clipboardcontents.clip
FileRead, Clipboard, clipboardcontents.clip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接