(Programación VC++) ¿Cuáles son las funciones API para ejecutar archivos exe?
La forma más sencilla:
Winexec (nombre de archivo, SW_Show);
CreateProcess() un poco más difícil, crea un proceso
Dar yo un ejemplo
CString str;
STARTUPINFO si
PROCESS_INFORMATION pi
// Nombre de la aplicación llamada p>
str = "Ping"; //"Ping.exe"
// pone a cero e inicializa STARTUPINFO
memset( &si, 0, sizeof( si ) ; p>
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW
if(CreateProcess; (
NULL, // puede ser el nombre del proceso a menos que
// archivo por lotes, de lo contrario debe ser
// en la línea de comando:
(char*)LPCSTR(str), // línea de comando
NULL,NULL, // opciones de seguridad
FALSE, // si es verdadero heredará todo
// identificadores heredables
// de este proceso
NORMAL_PRIORITY_CLASS, // también puede ser HIGH_PRIORITY_CLASS
// o IDLE_PRIORITY_CLASS
NULL, // hereda el
// bloque de entorno de este proceso
NULL, // especifica el directorio de trabajo
// del proceso creado
&si, // STA RTUPINFO especificado arriba
&pi // PROCESS_INFORMATION devuelto
)
)
{ p>
// HANDLE pH = pi.hProcess;
// // espera hasta que se aplique
ion está listo para la entrada
// if ( !WaitForInputIdle( pH,1000 ) )
// {
// // envío de mensajes, etc.
// }
// matar el proceso con 0 código de salida
// TerminateProcess( pH, 0
} <); /p>
else
{
AfxMessageBox( "¡El directorio actual del archivo Ping.exe no existe!"
}<); /p>
Existe una tercera forma, la función API
ShellExecute(0, NULL,fullPathFileName, NULL, NULL, SW_RESTORE);