Mini Tutorial: Enviar Texto a Aplicación Externa con VB NET

Hola, bueno esto lo hice porque veo que muchos lo preguntan y no saben como hacerlo, hay muchas formas para hacerlo, esta es una de ellas. Les voy a hacer un ejemplo de como mandar un texto al textbox de una aplicacion externa, en este caso el Notepad de windows.

como sabran pueden usar el SPY++ para averiguar los nombres de clase de los controles…

este es el nombre de clase de la ventana padre llamada “Notepad”:

este es el nombre del control Textbox dentro de la ventana llamado “Edit”:

para saber los datos de la ventana tienen que arrastrar el “iconito” sobre una ventana y te va diciendo las partes que la forman,en este caso fijense que esta seleccionado el area de escritura del bloc de notas y al lado en la ventana estan los datos…

el handle es el numero(Long) que le asigna windows a cada ventana ,es como si fuera el numero que identifica esa ventana,sabiendo eso,podes hacer un monton de cosas,cerrarla,moverla,resizarla,cambiar valores,etc….

el Class es el nombre de clase del control,o sea cada control tiene su nombre…ese ese es que nos interesa ahora..

ahora fijense con este codigo como escribo en el bloc de notas..usando unas funciones api’s…

Public Class Form1
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Const WM_SETTEXT = &HC

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Shell("notepad.exe", vbNormalNoFocus)
Dim a As Long
Dim b As Long
a = FindWindow("Notepad", vbNullString)
b = FindWindowEx(a, 0&, "Edit", vbNullString)
SendMessageSTRING(b, WM_SETTEXT, 256, "Holaaaaaaaaaaaa")
End Sub
End Class

saludos.

One Response to Mini Tutorial: Enviar Texto a Aplicación Externa con VB NET

  1. Rodrigo says:

    Hola. Necesito hacer algo similar a lo que hace este soft,

    http://www.renovation-software.com/en/text-grab-sdk/textgrab-sdk.html

    En definitiva, lo que necesito es poder capturar el texto de la pantalla, no importa de donde provenga, esto incluye los forms como los labesl, y controles de 3ros.

    Por eso te puse el soft ese, para que se entienda bien lo que necesito.

    Si me podrias dar una mano te lo agradeceria muchisimo.

    Lo necesito para vb6 o vb.net.

    Gracias.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>