2008-10-27 2 views
6

Я разрабатываю программное обеспечение, которое должно знать, когда происходит событие PASTE EVENT (через контекстное меню или ctrl + V) (только для файлов/каталогов). Более-менее, что-то вроде TeraCopy или Copy Handler. Когда вы копируете и затем вставляете, TeraCopy обрабатывает склейки.
Я знаю более или менее, как захватить КОПИРОВАННОЕ СОБЫТИЕ, вам нужно только установить ClipboardViewer, и вы поймаете все глобальные СОБЫТИЯ КОПИРОВАНИЯ (на самом деле называется WM_DRAWCLIPBOARD). Вы можете узнать это здесь: http://www.radsoftware.com.au/articles/clipboardmonitor.aspx Но ClipBoardViewer не предоставляет вам возможность поймать PASTE EVENT.Как подключить глобальное событие PASTE?

+0

Может быть, они просто обнаруживают keypress ctrl + v вместо этого? – mmiika 2008-10-28 03:13:37

ответ

1

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

Лучшее, что вы можете сделать, это определить, извлекало ли приложение данные из буфера обмена. Опять же, нет никакого способа узнать, что приложение сделало с этими данными. Это похоже на то, что кто-то открыл свой вход, не зная, куда они идут, если угодно.

Если вы хотите попробовать это, вы можете сделать что-то вроде подключения функции GetClipboardData. Для получения информации о том, как отслеживать общесистемные API-интерфейсы, проверьте образцы в Micrsoft Detours - http://research.microsoft.com/sn/detours

-1

Но программное обеспечение, такое как Teracopy и Copy Handler, обнаруживает событие вставки. Мне нужно почти то же самое, обнаружить, когда файл/каталог вставлен.

-1

Фактически, это программное обеспечение работает не только с помощью ctrl + v, но также и при нажатии на пазу в контекстном меню (щелкните правой кнопкой мыши).

 Смежные вопросы

  • Нет связанных вопросов^_^