Visual Basic - Projecto con varios exe

Life is soft - evento anual de software empresarial
   
Vista:

Projecto con varios exe

Publicado por Mariano (2 intervenciones) el 24/02/2011 03:20:18
Buenos dias foro, tengo que hacer un trabajo donde para hacer un solo exe quedaria muy grande. Entonces queria hacerlo en varios exe, pero debo pasar parametros entre los programas. Cual seria la forma recomendable para poder pasar parametros y tener control del estado de la pantalla.
saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Projecto con varios exe

Publicado por abraham (15 intervenciones) el 25/02/2011 16:25:39
Sub main()

Parametros = Command
.
.
.
.
.
.

Ensub

Command:
Devuelve la parte delargumento de lalínea de comando utililizada para ejecutar Microsoft Visual Basic o un programa ejecutable desarrollado con Visual Basic.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Projecto con varios exe

Publicado por Mariano (1 intervención) el 25/02/2011 16:31:09
Si, pero con eso solo le envio parametros, pero no puedo obtener una respuesta de estos parametros procesador, no puedo saber si la ventana esta maximizada, cerrada o en que estado se encuentra.

Yo quiero entre los distintos exe poder compartir informacion y poder saber en que estado estan las ventanas.

Gracias igual por la respuesta.

Mariano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Projecto con varios exe

Publicado por abraham (15 intervenciones) el 25/02/2011 18:39:04
Dim retval
retval = Shell("Path_y_nombre_del_exe_a_ejecutar", 1)
DoEvents

Set objeto = GetObject("winmgmts:")
Set lista = objeto.InstancesOf("win32_process")
encontrado = False
For Each proceso In lista
If UCase(proceso.Name) = UCase(nombre_del_programa_exe) Then
encontrado = True
Exit For
End If
Next

Si lo encuentra aun esta en ejecucion.

En cuanto a compartir informacion entre varios exes, podrias crear un archivo de paso donde escribas los datos que deseas compartir entre ellos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Projecto con varios exe

Publicado por Mariano (2 intervenciones) el 25/02/2011 19:17:14
Si, estas opciones puedo saber si esta o no, pero no puedo pasar datos sino es escribiendo archivos.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Projecto con varios exe

Publicado por abraham (15 intervenciones) el 25/02/2011 20:29:33
Ahi se te la debo, no sabira decirte si se pueden pasar datos entre "EXE"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Projecto con varios exe

Publicado por Martin (2 intervenciones) el 05/03/2011 04:19:04
Podes usar una conversacion DDE entre los programas que tengas abierto. Aca te mando un ejemplo de DDE, aunque no esta comentado porque es algo que tenia hecho hace mucho, pero quizás si lo analizas un poco te pueda servir.

Option Explicit
'Ejemplo de conversacion DDE (Dinamic Data Exchange)
'entre 2 aplicaciones
'
'necesitas los siguientes controles
'CONTROL ........... NOMBRE
'Form .............. Mensajero
'TextBox ........... Ventana
'TextBox ........... Enviador
'CommandButton ..... Command1
'CommandButton ..... Enviar
'
'De esta forma se puede enviar informacion a un control de
'otro programa que este preparado para recibir esa informacion

Private Sub Command1_Click()
On Error Resume Next

Ventana.Text = ""
Enviador.LinkExecute "Cls"

If Err = 293 Then
MsgBox "No hay enlace con la aplicacion destino", vbExclamation, "Error"
Exit Sub
End If

End Sub

Private Sub Enviador_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Enviar_Click
End If

End Sub

Private Sub Enviar_Click()
On Error Resume Next
ActualizarConexion
Enviador.LinkPoke

If Err = 293 Then
MsgBox "No hay a quien enviar", vbExclamation, Error
Exit Sub
End If

Agregar Enviador.Text, True

Enviador.Text = ""
End Sub

Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
If CmdStr = "Cls" Then
Ventana.Text = ""
End If
End Sub

Private Sub Form_Load()
On Error Resume Next

With Enviador
.LinkTopic = "Mensajero|Mensaje"
.LinkItem = "Recibidor"
.LinkMode = vbLinkNone
.LinkMode = vbLinkManual
End With

If Err = 282 Then
Exit Sub
End If

End Sub

Private Sub Agregar(Texto As String, Envio As Boolean)
Dim LoDeAntes As String
Dim Env As String

If Envio Then
Env = "Envio ---> "
Else
Env = "Recibo ---> "
End If

LoDeAntes = Ventana.Text

Ventana.Text = LoDeAntes & vbCrLf & Env & Texto

End Sub

Private Sub Recibidor_Change()
Agregar Recibidor.Text, False

End Sub

Private Sub ActualizarConexion()
Enviador.LinkMode = vbLinkNone
Enviador.LinkMode = vbLinkManual
End Sub




Si abris 2 instancias de este programita (una vez compilado) y escribis en una de ellas en el textbox enviador y le das click al boton enviar, veras lo escrito en el textbox ventana de la otra instancia (como si fuera MSN). Si abris varias instancias (mas de 2) se comporta raro, no se como tratar eso. Igual creo que si googleas este tema te va a servir bastante este ejemplo.

Otra forma que podrias usar es la API SendMessage, pero no sabria decirte como porque no se hacerlo, pero informate con eso que tambien esta muy bueno, y hasta te sirve para enviar datos a programas que vos no hiciste, como por ejemplo controlar WinAmp.

Para la info del estado de la pantalla podes hacer que en el momento en que el estado cambie envie esta informacion al control correspondiente del exe correspondiente.

En fin, seguro que hay otras formas, pero me parece que con esto te puede alcanzar. Mucha suerte con tu proyecto!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Projecto con varios exe

Publicado por Martin (2 intervenciones) el 05/03/2011 04:38:30
Aca tenes info sobre la funcion API que te dije antes

http://support.microsoft.com/kb/176058/es
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar