Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-08-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
...Bueno, parece que lo del WM_COMMAND no funciona, pero he descubierto que el menú conextual del ratón si que envía un WM_PASTE aunque el Hook no lo capte, esto me llama la atención.

He utilizado el WinSight para motirorizar el bloc de notas y he visto como registra un evento WM_PASTE Sent al hacer paste en el menú contextual del ratón. Si WinSight es capaz de hacerlo, entonces es que se puede hacer....

Saludos.

Última edición por escafandra fecha: 22-08-2008 a las 17:01:36.
Responder Con Cita
  #2  
Antiguo 22-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ayer, buscando esto que te desvela en Google, vi una respuesta muy sencilla:

Cita:
Haz un hook a la API GetClipboardData
Claro que hacer un hook a una API es cosa que se la dejo a los maestros como cHAckAll o seoane.

Pero supongo que es la mejor respuesta, pues, a fin de cuentas, todo acceso al contenido del clipboard se hace a través de esa función.

// Saludos
Responder Con Cita
  #3  
Antiguo 22-08-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
nCode = MSGF_MENU
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #4  
Antiguo 22-08-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
roman, gracias por tu interés. Esa referencia también la encontré y me pregunto una cosa si una aplicación llama a GetClipboardData es para conocer que tiene el clipboard. Luego puede pegar o no....

cHackAll, te agradezco la información, no he tenido tiempo de seguir probando pero creo que la solución está en un Hook. Probaré lo que dices.

Saludos y gracias a todos.
Responder Con Cita
  #5  
Antiguo 22-08-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Bueno, había probado el Hook tipo WH_MSGFILTER ahora he probado la sugerencia de cHackAll, WH_SYSMSGFILTER pero no me funciona. De hecho, a pesar de estar documentado como un Hook global, amí sólo me salta cuando actúo en mi aplicación, no en otras. Según la documentación, WH_MSGFILTER debería saltar sólo en los mensajes enviados a los menus de la aplicación donde se instala, y WH_SYSMSGFILTER debería ser global.He de decir que las pruebas las estoy realizando programando SetWindowsHookEx y la función callback del Hook en una dll.

No se porque el efecto no es global, y no captura tampoco WM_PASTE. Pienso que me falta algo pues sigo en la idea de que la solución está en un Hook.

Espero alguna idea.

Saludos.
Responder Con Cita
  #6  
Antiguo 22-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por escafandra Ver Mensaje
me pregunto una cosa si una aplicación llama a GetClipboardData es para conocer que tiene el clipboard. Luego puede pegar o no....
Claro, pero si lo pegan, ya estuvo que te lo perdiste Porque no todo será a través de WM_PASTE.

// Saludos
Responder Con Cita
  #7  
Antiguo 22-08-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Tienes razón, roman, no todo pasará obligatoriamente por WM_PASTE, pero si no pegan, el contenido del clipboard no interesa...

Una aplicación puede monitorizar el clipboard para ver cuando cambia y cuando esto ocurre, cotillear en éste para ver si le interesa pegar o no. Este comportamiento lo tienen varios programas.

Pretendo detectar si se realiza un paste.

Parece que el tema no es tan fácil como en un principio intuia y al tropezarme con problemas con los Hooks que interceptan mensajes me hace investigar mas cosas a la par que me estimula.

Por cierto acabo de probar el WH_SYSMSGFILTER implementandolo en mi aplicación, fuera de la dll, y no engancha.


Saludos.
Responder Con Cita
  #8  
Antiguo 23-08-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
roman, he estado mirando también tu sugerencia del hook a la API GetClipboardData, o a cualquier otra. No es nada sencillo y es una tarea para ir madurando y entendiendo despacio, pero extremadamente interesante y por lo tanto un reto.

Gracias y saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Detectar evento cambio de foco pborges36 OOP 28 26-05-2014 03:34:48
Paste de Word a Memo miquellg Servers 2 14-06-2007 17:07:59
Explicacion Copy Paste Undo de Clipboard digital Varios 6 13-03-2007 22:24:40
Llamar evento desde otro evento nachito_tuc OOP 1 23-08-2006 21:37:43
Detectar IP Carliviris Varios 3 17-04-2006 19:18:26


La franja horaria es GMT +2. Ahora son las 07:28:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi