Можно ли передавать сложные структуры данных через буфер обмена с помощью wxPython? - PullRequest
2 голосов
/ 29 июля 2011

Я бы хотел, чтобы мое приложение wxPython поддерживало операции вырезания / копирования / вставки между различными запущенными экземплярами приложения. Можно ли просто выбрать структуру данных, скопировать ее в буфер обмена как текст, а затем открепить для операций вставки?

Я знаю, что мне нужно проверить данные на наличие признаков того, что они из моего приложения. Или я могу просто ПОПРОБОВАТЬ, чтобы отомкнуть что-нибудь там? Насколько надежно работать с ошибкой, если она пытается распечатать произвольный текст, оставленный в буфере обмена?

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

Я работаю на Windows и Linux сегодня - не пробовал Mac.

EDIT Я знаю об этом комментарии в документации. Меня не особо волнует злоумышленник, пытающийся скомпрометировать свой собственный экземпляр программного обеспечения, если это то, о чем люди беспокоятся, им следует отказаться от маринада. У меня вопросы практичности, а не безопасности.

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Если применимо, я предлагаю вам преобразовать ваши данные в json и обратно, используя одну из многих реализаций Python.

Простой текст легко переносить с помощью буфера обмена, кроме того, нет риска конвертировать обратно объект json обратно в python.

И последнее: нет риска обесцениться.

1 голос
/ 29 июля 2011

Вы не должны доверять данным из буфера обмена для извлечения, если только у вас нет надежного способа убедиться, что они записаны вашим приложением и не были изменены.

Из документации по питону:

Предупреждение Модуль рассола не предназначен для защиты от ошибочные или злонамеренно сконструированные данные. Никогда не распаковывать данные получено из ненадежного или не прошедшего проверку подлинности источника.

...