Почему при закрытии окна проводника запускается несколько GetClipboardData? - PullRequest
2 голосов
/ 18 февраля 2011

Я разрабатываю небольшой программный модуль, чтобы уведомлять пользователей, когда они вставляют контент в неавторизованные приложения, я подключаю GetClipboardData для этого.Почти все работает нормально, но когда я, например, копирую содержимое из Word, я нажимаю InternetExplorer, открываю окно проводника и закрываю его, некоторые данные GetClipboardData запускаются из проводника.Может ли кто-нибудь помочь мне понять это поведение?Заранее спасибо С уважением

1 Ответ

1 голос
/ 26 февраля 2011

Обычно неожиданные события буфера обмена получают из определенных приложений, в основном от Microsoft, когда вы делаете такие вещи, как закрытие окон или что-то, что заставляет приложение остановиться и думать: «эй, может быть, я оставил немного дерьма в буфере обмена, я лучше почистить его, может быть, снова опубликовать его в виде простого текста без OLE-материала, возможно, я уже сделал это, но я не могу вспомнить, поэтому я сделаю это снова ". Это своего рода ОКР, в который они встроены практически во все. Иногда при выходе из программы появляется всплывающее сообщение: «Вы поместили большой объем данных в буфер обмена, хотите ли вы сделать его доступным для других приложений». Это то же самое. По сути, они поместили в буфер обмена несколько форматов, которые требуют вставки «отложенного рендеринга». И теперь приложение беспокоится о том, чтобы оставить недействительные данные в буфере обмена, поэтому оно должно повторно публиковать данные без модных форматов. Вы также получите это, если скопируете ячейку из Excel, а затем снимите выделение этой ячейки. Если вы получаете событие буфера обмена при запуске приложения, скорее всего, это зацепка надстройки в цепочку буфера обмена или, возможно, совершение худшего из всех грехов: копирование / вставка его значка в панель инструментов.

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