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?
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


0