Я знаю, что могу захватить копия событие, добавив дескриптор окна в цепочку просмотра буфера обмена с помощью SetClipboardViewer
или с помощью крючка для клавиатуры.
Но, похоже, сообщения буфера обмена не распространяются, когда вставить происходит (либо с помощью Ctrl + V, щелкните правой кнопкой мыши -> вставить или меню редактирования-> вставить.
Есть ли другой способ, которым мы можем захватить событие вставки?
Это верно, вы не можете обнаружить вставку, просматривая буфер обмена.
Копирование в буфер обмена — это операции записи, которые вы видите в программе просмотра буфера обмена (хотя вы не можете отличить их от вырезанных).
Вставка из буфера обмена является операцией чтения, поэтому вы не видите их в средстве просмотра буфера обмена, и даже если бы вы это сделали, вы не могли бы различить вставку и предварительный просмотр в «вставить специальные» без фактического вставки.
Глобальный мониторинг WM_PASTE может помочь. Например, с помощью Блокнота вы должны увидеть его как с помощью Ctrl + V, так и из контекстного меню. Но некоторые приложения не будут использовать это сообщение — они не обязаны.
Других решений пока нет …