Как загрузить двоичный контент в буфер обмена без каких-либо удалений или манипуляций?(AutoHotkey) - PullRequest
0 голосов
/ 09 июня 2018

У меня двоичное содержимое, хранящееся в файле (содержащем предыдущее содержимое буфера обмена), изменяется (без цели или добавления кода для этого) каждый раз, когда я пытаюсь загрузить его в буфер обмена.

Двоичное содержимое представляет собой организованныйпараграфы OneNote скопированы в буфер обмена.Чтобы иметь возможность использовать позже, я сохранил двоичное содержимое буфера обмена в файл test.clip, используя:

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

Затем, когда я пытаюсь извлечь содержимое test.clip двоичного файла в буфер обмена, используя:

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

И вставив в OneNote, я получаю неполные абзацы из тех, которые были скопированы ранее и сохранены в двоичном файле.

Я попытался проверить разницу между старым двоичным файлом test.clipи содержимое буфера обмена после загрузки этого файла.Я сохранил новое содержимое буфера обмена в test2.clip после получения test.clip, чтобы проверить, что-то манипулируется или не используется:

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

Я сравнил два файла test.clip и test2.clip (которые ожидаются такими же).Я обнаружил, что блок двоичного кода (в конце файла) удалялся после каждой загрузки test.clip в буфер обмена (удаленный блок отмечен красным на изображении ниже): enter image description here

Как я могу исправить , чтобы загрузить двоичный контент буфера обмена, сохраненный в test.clip, не удаляя ничего и не манипулируя из фактического содержимого файла?

1 Ответ

0 голосов
/ 13 июня 2018

Не используйте %ClipboardAll% здесь.Просто используйте %clipboard%.

" Буфер обмена - это встроенная переменная, которая отражает текущее содержимое буфера обмена Windows, если оно может быть выражено в виде текста.
В отличие от этого , ClipboardAll содержит все, что находится в буфере обмена, например изображения и форматирование . "
- https://autohotkey.com/docs/misc/Clipboard.htm

Снова цитируя документы, я думаю, что вижу вашу проблему: " Если ClipboardAll не может получить один или несколько объектов данных (форматы)в буфере обмена , они будут опущены , но все оставшиеся объекты будут сохранены."

Как пример:

F4::
FileAppend, %Clipboard%, clipboardcontents.clip
FileRead, Clipboard, clipboardcontents.clip
...