Crear Aplicacion Visual Basic que escriba en cualquier lugar donde tenga el foco el cursor

De Visual Basic.

Soy novato en esto de la programación y quisiera pedirles su gran apoyo para crear una aplicacion que realize la siguiente función, actualmente trabajo en una empresa donde ya tienen un programa de capturas, la verdad es que es muy sencillo y sé que con un programa alterno avanzaría más rápido, mi idea es la siguiente, hay un campo en el programa de la empresa donde se escribe el nombre de cierta persona, siempre son personas repetidas y pues me gustaría que mientras escriba en ese campo, un programa independiente "flotante", me vaya mostrando un listbox con coincidencias de nombres y que en el evento click me pasara esos datos al campo activo en el programa de la empresa, lo de cargar datos en el listbox ya lo he hecho, me gustaría mas que nada apoyo en cuanto a la forma de interactuar entre ambos programas.

De antemano muchas gracias a todos.

Nota: tengo en Visual Estudio 2013 instalado y he trabajado mucho con VBA para Excel por lo cual ya tengo un poco de experiencia.

1 Respuesta

Respuesta
1

Pues así de pronto se me ocurren tres maneras de hacer algo parecido. Te oriento y ya tú mismo eliges hasta dónde quieres complicarte.

1.- Sendkeys.- Es un comando de Visual Basic que envía cadenas de texto a la aplicación activa. Podrías crear un botón que pusiese el foco en tu aplicación, y después de un retardo, enviase la cadena al cuadro que correspondiese. No es mala solución, pero si te equivocas de recuadro no funcionaría.

2.- Podrías usar el portapapeles (Control+c/ Control+v), controlándolo con la aplicación, por lo que te ahorrarías el SendKeys. En la aplicación objetivo, con escribir Control + V, ya tendrías suficiente. En el origen, con el evento que quieras (un botón, la tecla ENTER... incluso un Timer te valdría) cargarías el portapapeles con el texto. Es la opción más fácil.

3.- Por último, se puede iniciar un Drag & Drop con el texto del nombre; es una operación de arrastrar y soltar, algo que antes se hacía mucho, pero cada vez se ve menos. Depende mucho de como reaccione tu programa objetivo a la operación de recibir el texto. Si le sienta mal habrás trabajado un montón para nada.

Lo que imagino que querrías hacer es ir escribiendo en el cuadro de tu programa y que el otro programa te fuese insinuando el nombre, en plan autocompletar, pero eso es bastante complejo y sinceramente, quien lo sepa, que me enseñe a hacerlo.

Muchas gracias por tu pronta respuesta, si quisiera utilizar la primera opción (SendKeys) ¿Más o menos como debería ser el código?

Imports System. Threading
Public Class Form1
    Dim a As New Process
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        a.StartInfo.FileName = "Notepad.exe"
        a. Start()
        Thread. Sleep(1000)
        SendKeys. SendWait("Hola")
        Thread. Sleep(1000)
    End Sub
End Class

Esto abre el Notepad y le manda la cadena "Hola". 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas