Как загрузить двоичный контент в буфер обмена без каких-либо удалений или манипуляций? (AutoHotkey)
У меня есть двоичное содержимое, хранящееся в файле (содержащем предыдущее содержимое буфера обмена), которое модифицируется (без цели или без добавления кода для этого) каждый раз, когда я пытаюсь загрузить его в буфер обмена.
Двоичный контент представляет собой организованные абзацы в 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 в буфер обмена (удаленный блок помечен красным на изображении ниже):
Как я могу это исправить, чтобы загрузить содержимое двоичного буфера обмена, хранящегося в test.clip, не удаляя ничего и не манипулируя из реального содержимого файла?
1 ответ
Не использовать %ClipboardAll%
Вот. Просто используйте %clipboard%
,
"Буфер обмена - это встроенная переменная, которая отражает текущее содержимое буфера обмена Windows, если оно может быть выражено в виде текста.
В отличие от этого, ClipboardAll содержит все, что находится в буфере обмена, например изображения и форматирование".
- https://autohotkey.com/docs/misc/Clipboard.htm
Снова цитируя документы, я думаю, что вижу вашу проблему: "Если ClipboardAll не может извлечь один или несколько объектов данных (форматов) из буфера обмена, они будут опущены, но все остальные объекты будут сохранены".
В качестве примера:
F4::
FileAppend, %Clipboard%, clipboardcontents.clip
FileRead, Clipboard, clipboardcontents.clip