• Domingo 15 de Diciembre de 2024, 08:33

Autor Tema:  SendMessage WM_KEYDOWN a otra aplicación  (Leído 1760 veces)

DeMoivre

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
SendMessage WM_KEYDOWN a otra aplicación
« en: Viernes 26 de Septiembre de 2008, 03:09 »
0
Buenas

Tengop un problema, se los comento a ver si me pueden ayudar:


Yo estoy queriendo escribir en el "bloc de notas" un texto desmi mi programa. Para eso intenté tomar el handle de ventana del BLOC DE NOTAS abierto, y luego le quiero mandar un mensaje WM_KEYDOWN usando SendMessage o PostMessaje, pero no sucede nada.

¿En qué le estoy errando?, no es posible mandarle un mensaje WM_KEYDOWN a otra aplicación?

¿cómo podría solucionar el problema?


gracias, saludos!

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: SendMessage WM_KEYDOWN a otra aplicación
« Respuesta #1 en: Viernes 26 de Septiembre de 2008, 08:49 »
0
¡Bienvenido al foro!

Si posteas un poco de la parte de código que creas que puede ser la causa del problema, sería más fácil para todos.

Saludos

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: SendMessage WM_KEYDOWN a otra aplicación
« Respuesta #2 en: Viernes 26 de Septiembre de 2008, 23:23 »
0
Hasta donde yo sé no es posible enviar mensajes de un proceso a otro en Windows. Eso se conoce como "saltar la barrera del proceso" y si se pudiera hacer de forma sencilla resultaría un enorme y engorroso fallo de seguridad (imagina un ActiveX instalado en el Internet Explorer que forzara al programador de tareas mediante envío de mensajes inter-proceso el crear una tarea para formatear el disco duro durante el siguiente arranque. A esto mismo se lo conoce como "escalada de privilegios a través del bucle de mensajes").

Eso no quiere decir que no se pueda hacer, sólo quiere decir que es bastante complejo de hacer. Jeffrey Ritcher en sus libros sobre programación de sistemas para Win32 lo explica; la última versión publicada se llama "Windows via C/C++", que tento pendiente de leer y que sólo está de momento en inglés y que por eso no sé si sigue contándolo o no. Todos los anteriores están descatalogados y hay alguna traducción al castellano también descatalogada.

El tema está en lo que se conoce como "Inyectar una DLL en otro proceso" y basícamente se trata de eso: crear una DLL que se inyecta en otro proceso y que al estar en ese otro proceso ya es capaz de enviar localmente los mensajes adecuados.

El tema es un poco *complicadillo*, pero seguro que en San Google encuentras por dónde empezar si buscas "DLL process injection" o similar.

Una vez que sepas cómo y qué hacer, si tienes dudas puntuales quizás podamos ayudarte...
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

DeMoivre

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: SendMessage WM_KEYDOWN a otra aplicación
« Respuesta #3 en: Sábado 27 de Septiembre de 2008, 06:01 »
0
Entendido, a revolver el google entonces.


Gracias por la orientación  :)


SALUDOS