Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: elmaro en 13 Enero 2009, 03:10 am



Título: Leer datos de otra aplicacion (VB.NET)
Publicado por: elmaro en 13 Enero 2009, 03:10 am
Buenasssss
Tengo una duda, estoy haciendo una aplicacion y necesito sacar datos de otra.
Por ejemplo... hay una aplicacion con varios campos de texto... el objetivo es obtener esos datos pedo desde una app echa por mi.
Ejemplo practico:
Abro Inicio - Ejecutar. => Escribo la ruta de un archivo a ejecutar, por ejemplo "notepad.exe" (Todavia no apreto Enter)
Abro mi aplicacion y obtengo lo que hay escrito en el campo de texto del cuadro Ejecutar.... en este caso seria: "notepad.exe"
Me explico?

Si a alguno se le ocurre me seria de ayuda. Mientras tanto voy a seguir buscando y si lo encuentro lo posteo.

Gracias!


Título: Re: Leer datos de otra aplicacion (VB.NET)
Publicado por: seba123neo en 13 Enero 2009, 03:27 am
Hola, debes sacar el texto de la ventana, lo podes hacer facil con api's como findwindow y demas...sacando el nombre de clase de la ventana y del control textbox...

saludos.


Título: Re: Leer datos de otra aplicacion (VB.NET)
Publicado por: elmaro en 13 Enero 2009, 03:42 am
Hola, debes sacar el texto de la ventana, lo podes hacer facil con api's como findwindow y demas...sacando el nombre de clase de la ventana y del control textbox...

saludos.

Entiendo...
y en el caso de que sea un RichTextBox?  :laugh:
Por ahi lei...dicen... es casi imposible. Tengo mis dudas
no creo que ya tenga que explicar que quiero hacer jaja

Saludos!


Título: Re: Leer datos de otra aplicacion (VB.NET)
Publicado por: elmaro en 13 Enero 2009, 23:00 pm
Bueno... vamos avanzando
Tengo el codigo para obtener el handle de la ventana... ahora mi problema es como a partir de ese handle puedo obtener los controles que tiene esa ventana.
Sigo investigando, si alguien me da una mano, sera aceptada.

Saludos!


Código:
    Private Declare Function GetForegroundWindow Lib "user32.dll" () As Int32
    Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Int32, ByVal lpString As String, ByVal cch As Int32) As Int32


Public Function GetActiveWindowTitle() As String
        Dim MyStr As String
        MyStr = New String(Chr(0), 100)
        GetWindowText(GetForegroundWindow, MyStr, 100)
        MyStr = MyStr.Substring(0, InStr(MyStr, Chr(0)) - 1)

        Return MyStr
    End Function

Dim nWnd As IntPtr
     
'nWnd contiene el handle
nWnd = FindWindow(Nothing, GetActiveWindowTitle)


EDITADO:
Para orientar un poco
http://www.recursosvisualbasic.com.ar/htm/listado-api/195-obtener-texto-de-ventanas-externas.htm (http://www.recursosvisualbasic.com.ar/htm/listado-api/195-obtener-texto-de-ventanas-externas.htm)


Título: Re: Leer datos de otra aplicacion (VB.NET)
Publicado por: elmaro en 14 Enero 2009, 01:10 am
Me acabo de resignar a hacer esto. No puedo conseguir el nombre de la clase de este control. (es donde se lee la conversacion de msn)
Obtuve mediante funciones estos dos nombres: DirectUIHWND que creo que es para skins y el IMWindowClass que es donde uno va tipiando el mensaje si no me equivoco. Pero el otro control... ni aparece.
Asi que voy a tener que usar otro metodo porque esta app la tengo que tener mañana :S

Si a alguien le interesa posteo el code de como saque esa informacion.


Título: Re: Leer datos de otra aplicacion (VB.NET)
Publicado por: seba123neo en 14 Enero 2009, 02:03 am
manualmente con el SPY++ de Microsoft podes obtener los nombres de clase de las ventanas y su handle...o sino con api's podes hacerlo con EnumChildWindows.pero hacelo con el Spy que es mas rapido...

saludos.