«Как я могу получить событие, чтобы увидеть, что копируется в буфер обмена?» .... это очень распространенные и старые вопросы. Например, как this forum questionКак работать с сообщением буфера обмена WM_DRAWCLIPBOARD, который отправляется несколько раз по нескольким причинам
Мой опыт в том, что некоторые приложения запускают событие несколько раз. Я обнаружил, что люди говорят, что имеют дело только с последним разом. Как именно я должен это делать? Как узнать в последний раз?
Далее, когда я даю фокус на Outlook 2007, он запускает буфер обмена и запускает его несколько раз. Также, когда я нажимаю в Outlook, сообщение буфера обмена запускается. Как я должен различать реальную копию чего-то в буфере обмена и другие сообщения, которые мне не нужны.
Я знаю, что могу проверить, совпадает ли содержимое, но в моем случае это ограничение, поскольку использование может копировать одно и то же содержимое дважды.
Я знаю об этом unanswered question here. Это только половина моих вопросов, и люди в любом случае уклоняются от копирования разных типов.
Буфер обмена зрители являются хрупкими, они должны сотрудничать со всеми другими зрителями. Как и тот, который использует программа Office. Если вы хотите узнать, изменилось ли содержимое буфера обмена, просто не используйте средство просмотра. Вызовите AddClipboardFormatListener() и обратите внимание на WM_CLIPBOARDUPDATE, который вы сейчас получите. –
Я перешел на WM_CLIPBOARDUPDATE. Давайте уточним. Когда я нажимаю на Outlook - WM_CLIPBOARDUPDATE запускается 3 раза - текст точно такой же, и форматы данных в буфере обмена также точно такие же. Итак, что «обновлено» или «изменено»? – darbid
Вам нужно спросить Microsoft. Почему это имеет значение? Это не должно. –