Рубин, ошибка буфера обмена Windows? - PullRequest
4 голосов
/ 14 сентября 2011

Вопрос: Это нормально для приложения с графическим интерфейсом Ruby TK для очистки буфера обмена Windows при выходе?

Проблема: У меня есть TkText с некоторым текстом весли Ctrl + C затем закроет приложение, буфер обмена будет пустым, если я вставлю его, когда приложение все еще открыто, все работает нормально, после вставки, даже если закрывать приложение не имеет значения, оно все равно остается в буфере обмена.

Это должно произойти?

1 Ответ

2 голосов
/ 15 сентября 2011

Похоже, что отложенный рендеринг может быть в силе. Вы, наверное, видели это в таких приложениях, как Excel, Word, Outlook или практически в любой большой программе для рисования. Вы копируете, и когда вы закрываете приложение, появляется что-то вроде: «Вы поместили большой объем данных в буфер обмена, хотите ли вы сделать его доступным для других программ?». Это потому, что копирование было выполнено с «отложенным рендерингом», а данные на самом деле не находятся в буфере обмена. В буфере обмена есть только пустые маркеры, и если / когда что-то действительно требуется вставить (особенно в экзотических или дорогих форматах, таких как WKS1, SYLK, EMF, HTML и т. Д.), Приложение должно произвести его на месте. Таким образом, после завершения работы эти приложения действительно просто заботятся об этих невыполненных обязательствах, потому что они не будут готовы ответить на сообщения WM_RenderFormat после того, как они исчезнут. Я ожидаю, что в вашей среде ruby ​​используется отложенный рендеринг даже для простых форматов, таких как CF_TEXT, и вместо того, чтобы обновлять буфер обмена полностью заполненными данными (что молча делают многие приложения), они просто поражают. Или, может быть, они оставляют нулевые ручки там. Запуск старого средства просмотра буфера обмена XP покажет вам разницу между действительно пустым буфером обмена и тем, который считает, что у него есть текст (TEXT отображается в списке доступных форматов), но на самом деле просто содержит нулевые маркеры.

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