Visual Basic - Ejecutar aplicaciones externas

Life is soft - evento anual de software empresarial
 
Vista:

Ejecutar aplicaciones externas

Publicado por Fredy P. V. (1 intervención) el 05/04/2007 08:33:50
quisiera saber como ejecutar aplicaciones extenas desde visual basic 6.0
por favor diganme!!!
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:Ejecutar aplicaciones externas

Publicado por Benjo (679 intervenciones) el 07/04/2007 05:57:15
Solo tenés que usar la Función Shell
Sintaxis

Shell(pathname[,windowstyle])

La sintaxis de la función Shell tiene estosargumentos con nombre:

Parte Descripción
pathname Requerido; Variant (String). Nombre del programa a ejecutar y de cualesquieraargumentos necesarios o modificador de lalínea de comandos; puede incluir directorio o carpeta y unidad de disco.
windowstyle Opcional. Variant (Integer) correspondiente al estilo de la ventana en la cual se va a ejecutar el programa. Si se omite windowstyle, el programa se inicia minimizado con enfoque.

El argumento con nombre windowstyle tiene estos valores:
Constante Valor Descripción
vbHide 0 Se oculta Windows y se pasa el foco a la ventana oculta.
vbNormalFocus 1 Windows recupera el foco y vuelve a su posición y tamaño original.
vbMinimizedFocus 2 Windows se muestra como un icono con foco.
vbMaximizedFocus 3 Windows se maximiza con foco.
vbNormalNoFocus 4 Windows vuelve al tamaño y posición más recientes. La ventana activa actual permanece activa.
vbMinimizedNoFocus 6 Windows se muestra como un icono. La ventana activa actual permanece activa.

Ejemplo

' Si se especifica 1 como el segundo argumento, la aplicación se
' ejecuta normalmente y recibe el enfoque.
Dim RetVal
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Ejecuta Calculadora
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:Ejecutar aplicaciones externas

Publicado por Liith_90 (4 intervenciones) el 08/04/2007 12:00:14
Hola me gustaria sabr como limitar e tiempo que esta abierta una aplicacion externa a visual basic
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:Ejecutar aplicaciones externas

Publicado por Benjo (679 intervenciones) el 09/04/2007 03:12:06
En realidad como es una aplicación externa no podés limitarla desde la misma aplicación, y el tiempo debe ser evaluado desde la aplicación que lo lanza.
En este orden de ideas, tendrías que poner un Timer que se ejecute cada minuto, y dependiendo de cuanto tiempo desees que permanezca la aplicación externa, poner un contador dentro de la función Timer que se vaya incrementando . para eso necesitás una variable estática, o bien, una variable Global declarada en un módulo estandar. En cuanto a cerrar un proceso en base a los datos obtenidos desde tu misma aplicación, tendrás que usar las APIS de Windows. Este es un ejemplo simple hecho a medida

Ejemplo:

Private Declare Function TerminateProcess Lib "Kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "Kernel32" (ByVal hObject As Long) As Long

Private Declare Function OpenProcess Lib "Kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Const PROCESS_QUERY_INFORMATION = &H400
Dim hProcess As Long
'la propiedad Interval del Objeto Timer tiene que ser de 65535 equivalente a un minuto

Private sub Form_Load ()
LaunchApp
End Sub

Private Sub LaunchApp()
'en la variable hProcess se resguarda el número del proceso asignado por Windows

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell("c:\windows\notepad.exe", 1))

End Sub

Private Sub MiLimite_Timer()
'El timer va sumando minutos hasta llegar a la hora
Static lMinutos as Long
'El limite se fija en Una Hora (60 Minutos)
If lMinutos= 60 then
'Rutina para cerrar la aplicación externa
CloseApp
'Vuelve a setetar el Timer a 0
lMinutos=0
else
lMinutos= lMinutos +1
endif
End Sub

Private Sub CloseApp()
Dim exitCode As Long, AppKill as long
' API que termina un Proceso
AppKill = TerminateProcess(hProcess, exitCode)
' Cierra el Handle correspondiente al proceso
Call CloseHandle(hProcess)
End Sub

Cualquier duda dejame un post y lo vemos.
Espero que te sea útil
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:Ejecutar aplicaciones externas

Publicado por Lilith_90 (4 intervenciones) el 11/04/2007 22:08:36
Cocrtamente lo que yo quiero es que se abra una web durante 1 minuto y pasado este tiempo se cierre.He probado el ejemplo que me has dejado con el note pero no se cierra si puedes ayudarme te lo agradeceria mucho
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