2008-10-27 24 views
6

Estoy desarrollando un software que necesita saber cuándo sucede PASTE EVENT (a través del menú contextual o ctrl + V) (solo para archivos/directorios). Más o menos, algo así sucede con TeraCopy o Copy Handler. Cuando copias y luego pegas, es TeraCopy quien maneja las pastillas.
Sé más o menos cómo capturar el COPY EVENT, solo tiene que configurar un ClipboardViewer y atrapa todos los COPY EVENTS globales (de hecho se llama: WM_DRAWCLIPBOARD). Puede aprender esto aquí: http://www.radsoftware.com.au/articles/clipboardmonitor.aspx Pero el ClipBoardViewer no le proporciona la capacidad de atrapar el EVENTO PASTE.Cómo conectar un evento PASTE global?

+0

¿Podría ser que simplemente detectan la pulsación de tecla ctrl + v? – mmiika

Respuesta

1

El proceso de cambio de estado mediante "Pegado" es específico para aplicaciones individuales, por lo que no existe una forma mágica de descubrir si el estado de una aplicación cambió después de acceder al portapapeles.

Lo mejor que puede hacer es detectar si una aplicación ha recuperado datos del portapapeles. Una vez más, no hay forma de saber qué hizo la aplicación con estos datos. Es como saber que alguien abrió su puerta de entrada sin saber a dónde iban, si es que estaba en alguna parte.

Si quiere probar esto, puede hacer algo como conectar la función GetClipboardData. Para obtener información acerca de cómo ubicar los ganchos de la API en todo el sistema, consulte las muestras en Micrsoft Detours - http://research.microsoft.com/sn/detours

-1

Pero software como Teracopy y Copy Handler detectan el evento de pegar. Necesito casi lo mismo, detectar cuando un archivo/directorio está pegado.

-1

De hecho, este software no solo funciona para ctrl + v, sino también cuando se hace clic en la opción de pegar en el menú contextual (clic derecho).

Cuestiones relacionadas