Dev - C++ - Ejecutar un archivo msi

 
Vista:

Ejecutar un archivo msi

Publicado por Leonardo Reyes (1 intervención) el 17/11/2006 18:03:21
Hola,

tengo un programa que quiero que ejecute un programa adicional dependiendo de la situacion. Si le pido al programa que ejecute una archivo .exe, lo ejecuta perfectamente; pero si le pido que me ejecute un archivo msi, lo ejecuta pero desde consola lo ejecuta, pero cuando no ejecuto el programa desde consola no me carga el archivo msi.

Este es el codigo que estoy usando:
#include <stdio.h>
#include <conio.h>
#include <process.h>

char *my_env[] = { // this simulates the parameters passed in argv[]
"THIS=environment will be",
"PASSED=to new process by",
"the EXEC=functions",
NULL // this is a terminator
};

void main() {
char *args[4], prog[80], prueba[80];
int ch;
printf( "Diga el nombre de la aplicacion:" );
gets( prog );
printf( "\n" );

ch = 1;

/* Arguments for execv? */
args[0] = prog;
args[1] = "exec??";
args[2] = "two";
args[3] = NULL;

switch( ch ) {
case 1: execl( prog, prog, "execl", "two", NULL );
break;
case 2: execle( prog, prog, "execle", "two", NULL, my_env );
break;
case 3: execlp( prog, prog, "execlp", "two", NULL );
break;
case 4: _execlpe( prog, prog, "execlpe", "two", NULL, my_env );
break;
case 5: execv( prog, args );
break;
case 6: execve( prog, args, my_env );
break;
case 7: execvp( prog, args );
break;
case 8: execvpe( prog, args, my_env );
break;
}
}

Lo que intento es que el programa pueda ejecutar tanto archivos .exe como archivos msi cuando lo ejecuto, no desde consola.

Puede alguien ayudarme?
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 un archivo msi

Publicado por el ayudador (7 intervenciones) el 04/12/2006 08:53:34
no se en que compilador estás trabajando pero si es alguno basado en windows que trabaje con la API, como Dev-C++, Borland C++ 5.5 y superirores, esto te puede servir:

ShellExecute es una funcion que reside en la libreriía windows.h y tendrias que incluirla a tu programa:
ej:
#include <windows.h>

// resto del programa

Ojo. puedes estar trabajando todo perfectamente en entorno DOS y solo ocupas windows.h para invocar la funcion ShellExecute. Esa no falla, y con ella puedes ejecutar absolutamente todos los formatos que el sistema operativo windows conoce. Para mas informacion, te recomiendo busques en san google por estas palabras:

ShellExecute Function

... y te vas al link que te lleva a la pagina de microsoft, ahi te conversa mas detalladamente como se usa la funcion y pa que sirve. Puedes escribir a mi correo tambien si lo deseas cualquier duda.

espero que sirva..saludos.

EL AYUDADOR.
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