Editar texto de un programa a partir de otro programa c#

Iniciado por Adrylek, 11 Julio 2014, 21:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Adrylek

Hola.
No sé si hay una manera sencilla de hacer esto, pero lo que me gustaría es tener un proyecto donde el texto de un textbox se copie en un textbox de otro proyecto.
Leído así me parece algo bastante dificil, pero no sé si hay alguna manera un poco sencilla de hacer.

kub0x

Hola Adrylek,

ando muy liado pero aquí te arrojo algo de luz. Que sepas que también existen técnicas de IPC (comunicación entre procesos): sockets, shared memory o named pipes. Pero en este caso te recomiendo usar la API de Windows, especialmente SendMessage enviandole el mensaje al handle (id) del textbox.

https://www.google.es/search?q=sendmessage+textbox+.net&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a&channel=fflb&gfe_rd=cr&ei=KjvAU7vGGYWI_Abl-YDADA

Saludos!
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


Adrylek

Lo he intentado, pero no he conseguido nada..
Podrías explicármelo un poco? :l

Eleкtro

#3
Si una aplicación no no puede interactuar de forma legítima con otro proceso (Sockets, Remote Object, etc...) cuando ese debería ser su proposito en este caso, entonces está mal desarrollada.

Tu pregunta trata sobre un software que no ha sido desarrollado para la interacción entre procesos, y eso complica las cosas,
la función sendmessage (enviando el message WM_GETTEXT) es algo que se inventó en el siglo pasado cuando las aplicaciones todavía no eran capaces de estar aisladas unas de las otras (cuando el término "isolation" no existía aún en lo referente a la programación de Software), pero en este siglo se debería evitar el uso de la WinAPI para hacer estas cosas, la verdad, al menos NO en caso de que los dos proyectos sean de tu propiedad y eso signifique que puedas editar los proyectos, entonces deberías escuchar la primera sugerencia de @KuBox para buscar otras soluciones.

De todas formas si te empeñas en hacerlo usando la WinAPI (que tampoco es que sea algo malo, pero según se mire es una mala práctica), puedes empezar por buscar y escribir en tu código las declaraciones de todas estas funciones e informarte sobre el uso de ellas, así como el uso de los métodos de Marshal que te pondré al final que también te pueden servir como alternativa, y cuando lo tengas todo listo, ya podremos seguir hablando sobre el tema:

· FindWindowEx function
· WindowFromPoint function
· GetClassName function
· EnumChildWindows function

· SendMessage function
· WM_GETTEXT message
· WM_GETTEXTLENGTH message

· Marshal.AllocHGlobal Method
· Marshal.PtrToStringUni Method

Nota: Ten en cuenta que a cada Control de una aplicación se le asigna un Handle, pero además la zona vacía para escribir en ese Control segúramente tendrá otro Handle distinto.

Nota 2:
Cita de: Adrylek en 12 Julio 2014, 02:27 AMLo he intentado, pero no he conseguido nada..
Al menos yo, al hablar sobre la WinAPI, mientras no muestres un código con tu progreso me limitaré solamente a ofrecerte información.