Как файлы копировать / вырезать / вставить, используя операции с буфером обмена (ctrl-c / ctrl-v) - PullRequest
2 голосов
/ 16 февраля 2011

Пытался использовать win32clipboard для выполнения операций копирования и вставки текста (до сих пор) и мог с легкостью это делать. Но теперь мне интересно, как будут выполняться операции копирования / вставки для папок / файлов и т. Д. тот. Я использую Python для достижения того же. Не удалось также найти какие-либо соответствующие форматы для этого. Что-то вроде пути к файлу копируется, а затем операция вставки идентифицирует данные буфера обмена как путь к файлу, а затем фактически копирует файл? Понятия не имею :(.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2011

Когда вы копируете объект оболочки (например, файл или папку) в буфер обмена, оболочка помещает данные в буфер обмена в различных форматах. Программа просмотра буфера обмена для такой операции показывает следующие форматы:

enter image description here

Честно говоря, я не знаю, какой из них используется при последующей вставке, но я думаю, что Shell IDList Array. Дело в том, что файлы и папки не попадают в буфер обмена, а только ссылаются на них.

Я полагаю, что есть исчерпывающая документация по этому вопросу на MSDN: форматы буфера обмена Shell .

Это должно дать вам достаточную ориентацию для дальнейшего поиска в Интернете оберток Python с такой функциональностью (я уверен, что они будут существовать)!

0 голосов
/ 16 февраля 2011

Windows копирует / вставляет вещи как OLE-объекты (http://en.wikipedia.org/wiki/Object_Linking_and_Embedding) Вам необходим пакет python для работы с OLE. Этот поток может помочь- Как мне написать сценарий OLE-компонента с использованием Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...