*.exe

Lilo
05 de Julio del 2005
Hola

Quiero ejecutar un pograma *.exe desde la aplicaci�n que estoy creando en visual basic.

�Pod�is ayudarme?

Max
05 de Julio del 2005
Shell (Función)


Ejecuta un programa ejecutable y devuelve un tipo Variant (Double) que representa la identificación de la tarea del programa si se ha ejecutado con éxito, en caso contrario devuelve cero.

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.


Comentarios

Si la función Shell ejecuta con éxito el archivo nombrado, devuelve la identificación de la tarea (Id) del programa iniciado. La Id de la tarea es un número exclusivo que identifica el programa en ejecución. Si la función Shell no puede iniciar el programa nombrado, ocurrirá un error.

Nota De manera predeterminada, la función Shell ejecuta otros programas de forma asíncrona. Esto quiere decir que no se puede esperar que un programa iniciado con Shell termine su ejecución antes de que se ejecuten las instrucciones que siguen a la función Shell en la aplicación.


' Si se especifica 1 como el segundo argumento, la aplicación se
' ejecuta normalmente y recibe el enfoque.
Dim RetVal
RetVal = Shell("C:WINDOWSCALC.EXE", 1) ' Ejecuta Calculadora.

Esto es lo que sale en en el MSDN.
Si primero buscamos y despues preguntamos muchas veces ahorrariamos tiempo.

Max

lilo
05 de Julio del 2005
Gracias por la respuesta.

Siento haberte molestado, pero no encontraba..
Gracias.

Max
05 de Julio del 2005
No es molestia, si no, no habría contestado, pero es cierto que muchas veces preguntamos (y me incluyo) sin haber buscado primero.

Espero haberte ayudado, si necesitas algo más ya sabes...

Max.

lilo
05 de Julio del 2005
Muchas gracias.
Se ejecuta el archivo *.exe perfectamente. Pero, como comentabas, se ejecuta de forma asíncrona. He estado mirando cómo esperar a que termine, pero la solución que dan (según entiendo) es esperar hasta que la ventana se ha cerrado.

Esto para mi es un gran problema, porque lo que yo ejecuto no abre ninguna ventana.

¿Hay otra forma de detectar si se ha terminado de ejecutar?

Gracias otra vez por la ayuda.

lilo
05 de Julio del 2005
Bueno, nada más preguntar he encontrado esta pagina (A veces pasan estas cosas)

http://www.elguille.info/vb/VB_API02.HTM

Creo que de esta manera funciona bien. Tengo que probarlo un poco más. Lo pondré si funciona bien por si a alguien le interesa...

lilo
05 de Julio del 2005
Mmm... pues me da error...

el chay
05 de Julio del 2005
para que te quede en forma de ejecutable trata de poner un icono a cado uno de tus formularios, despues publicalos, enseguida te vas al menu archivo y te aparece una opcion que dice guardar proyecto.exe.
otra forma es irse al menu complementos/ asistente para el empaquetamiento, despues te aparece una serie de instrucciones para que puedas hacerlo ejecutable y lo coloques en el menu de inicio, espero te sirva.