Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ejecutar boton comando de otro exe desde VB6

Estas en el tema de ejecutar boton comando de otro exe desde VB6 en el foro de Visual Basic clásico en Foros del Web. Cordial Saludo.. tengo un caso muy particular; debo abrir un programa .exe desde VB 6; eso ya lo hago perfectamente pero el detalle es que ...
  #1 (permalink)  
Antiguo 24/07/2009, 15:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
ejecutar boton comando de otro exe desde VB6

Cordial Saludo..
tengo un caso muy particular; debo abrir un programa .exe desde VB 6; eso ya
lo hago perfectamente pero el detalle es que debo mandar a oprimir el boton
procesar de ese .exe en particular, ademas que el boton de procesar hace unos procesos y debo saber cuando termina para poder cerrar ese exe.

Alguien puede colaborarme??

Agradezco de antemano la ayuda y sugerencias que me puedan brindar.
  #2 (permalink)  
Antiguo 24/07/2009, 18:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ejecutar boton comando de otro exe desde VB6

Para que se ejecute la acción asociada a ese botón debes usar SendMessage para enviar un mensaje WM_COMMAND que indique a la ventana que debe ejecutar esa acción.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 28/07/2009, 13:43
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Respuesta: ejecutar boton comando de otro exe desde VB6

Gracias por tu respuesta David.
he estado leyendo pero sirve solo con formularios del proyecto actual no con ejecutables externos.

De esta forma llamo al exe

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Command1_Click()
Dim res As Long
res = ShellExecute(Me.hwnd, "Open", ruta_exe, "", "", 1)
End Sub

Pero debo hacer que mande a ejecutar el boton de comando que tiene ese exe...

Alguien me puede colaborar o guiarme mejor; he hecho pruebas con SendMessage pero solo me ha funcionado con formularios del proyecto actual

Agradezco de antemano la ayuda que me puedan brindar.
  #4 (permalink)  
Antiguo 28/07/2009, 14:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ejecutar boton comando de otro exe desde VB6

SendMessage funciona con cualquier ventana. Probablemente algo estás haciendo mal y por eso no funciona. Muestra cómo has intentado para ver por qué falla.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 28/07/2009, 14:26
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Respuesta: ejecutar boton comando de otro exe desde VB6

Cordial Saludo David; esto es lo que hago

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_COMMAND = &H111

Private Sub Command1_Click()
Dim Resultado As Long

Dim Texto As String

Texto = "Procesar"

Resultado = SendMessage("Cajas" WM_COMMAND, 15, ByVal Texto)

end sub

El programa exe se llama Cajas.exe y el boton el caption dice procesar.

No entiendo muy bien los parametros del sendmessage..

Agradezco de antemano la ayuda y sugerencias que me puedas brindar.
  #6 (permalink)  
Antiguo 28/07/2009, 19:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ejecutar boton comando de otro exe desde VB6

El primer parámetro no puede ser un String, debe ser el hWnd de la ventana a la que deseas enviar el mensaje. Debes usar FindWindow para obtener el hWnd de una ventana.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:49.