Ver Mensaje Individual
  #63 (permalink)  
Antiguo 13/09/2008, 22:41
Avatar de seba123neo
seba123neo
 
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 18 años, 2 meses
Puntos: 19
Respuesta: Visual Basic 2005: Usar SendMessage.

bueno pero si copiaste y pegaste el ejemplo asi como esta en .NET no te va a andar, porque las api's tienen diferentes tipos de datos en visual basic 6 que en .NET...son diferentes...haber lo explico lo mas facil posible...

voy a hacer un ejemplo de como mandar un texto de un textbox de tu aplicacion al textbox de una aplicacion externa, en este caso el Notepad de windows...yo lo explico ..si ya lo sabes no importa seguro a alguien le va a servir..

como sabras podes 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 dentro de la ventana llamado "Edit":



para saber los datos de la ventana tenes que arrastrar el "iconito" sobre una ventana y te va diciendo las partes que la forman,en este caso fijate 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 fijate con este codigo como escribo en el bloc de notas..usando unas funciones api's...

Código:
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
lo unico que tenes que hacer ahora es adaptar eso a tu programa...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein