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.
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.