Necesito ayuda con PostMessage

25/05/2007 - 10:15 por Jowie | Informe spam
Hola,
¿Alguien me puede decir que parametros le tengo que pasar a
postMessage para que envie un texto a otra aplicación?, muchas gracias.

Preguntas similare

Leer las respuestas

#11 RFOG
28/05/2007 - 14:04 | Informe spam
Grrr.

Eso me pasa por no mirar bien. Puedes utilizar WM_SETTEXT para enviar la
cadena completa a la ventana de destino.

Los pasos son los mismos, pero ahora estás enviando la cadena al completo
y tienes que localizar el nombre del control destino.

Una vez que has encontrado la ventana destino tienes que encontrar la
ventana que quieres mediante FindWindow, y enviarle el mensaje.

http://msdn2.microsoft.com/en-us/li...32644.aspx

http://msdn2.microsoft.com/en-us/li...33499.aspx

Te digo que tampoco lo he hecho nunca en C# (ni siquiera en C++/CLI), pero
en C++ bajo Win32 funciona perfectamente, tanto esto como lo anterior.


En Mon, 28 May 2007 13:46:35 +0200, RFOG
escribió:

Mostrar la cita
Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
No tienes lo que mereces, tienes lo que no puedes esquivar.
#12 Jowie
28/05/2007 - 15:10 | Informe spam
Mostrar la cita
Utilizando algo como esto:

SendMessage(this.formularioActivo, SET_TEXT, 0, "hola");

consigo cambiar el titulo al formulario pero no insertar texto en uno
de sus controles, me diras que le pase el nombre del control, pero no
puedo porque es un teclado virtual y lo que se supone es que tiene que
poner el texto en el control activo. Perdoname por ser tan pesado pero
estamos a punto de conseguirlo.

Gracias por tu interes.
#13 RFOG
28/05/2007 - 15:23 | Informe spam
En Mon, 28 May 2007 15:10:22 +0200, Jowie
escribió:

Mostrar la cita
Claro, se debe a que le estás enviando el texto a una ventana de verdad
(no un control), y el comportamiento de una ventana ante ese mensaje es
cambiar su título.

Pues entonces debes recorrer todos los controles de la ficha (y sus
subcontroles) hasta que uno de ellos te devuelva Focused a cierto.
Hablamos de código .NET, no nativo. Cuando tengas ese control, entonces le
puedes enviar el mensaje. Lo que no sé es si la encadenación de controles
mantienene el foco, es decir, si un text que está contenido en un panel
que está contenido en un form ambos tres contienen Focused a cierto o sólo
el text. Quizás haya otra forma de obtener el control que tiene el foco
dentro del .NET

Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
No tienes lo que mereces, tienes lo que no puedes esquivar.
#14 RFOG
28/05/2007 - 15:31 | Informe spam
Tomado de mi código de por ahí:

HWND hwnd=::GetFocus();
if(hwnd!=NULL)
::SendMessage(,WM_SETTEXT,0,m_pstrInjectedText);
else
...

Es código en C++ nativo.



En Mon, 28 May 2007 15:23:06 +0200, RFOG
escribió:

Mostrar la cita
Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
No tienes lo que mereces, tienes lo que no puedes esquivar.
#15 Jowie
28/05/2007 - 16:32 | Informe spam
Mostrar la cita
No encuentro la forma de obtener el control activo. He puesto un bucle
que ejecuta la funcion sendMessage provando todos los valores en el
parametro tercero, pero ante cualquier numero siempre hace lo mismo,
cambiar el texto a la ventana.
SendMessage(this.formularioActivo, SET_TEXT, 0, "hola");

Gracias de todas formas.
Ads by Google
Search Busqueda sugerida