Visual C++ 6 - ShellExecuteEx
Publicado por Alvaro Mouat V. (8 intervenciones) el 28/02/2002 20:48:07
Hola ...
Necesito hacer que de algun modo la función ShellExecuteEx se quede esperando hasta que el programa al que se llamó termine.
Hasta ahora he seteado en la estructura SHELLEXECUTEINFO el campo fMask con y sin el valor SEE_MASK_NOCLOSEPROCESS, esperando que cuando este valor no esté seteado la función espere que el programa termine, pero esto no ocurre.
El código es el siguiente:
SHELLEXECUTEINFO eInfo;
memset(&eInfo, 0, sizeof(SHELLEXECUTEINFO));
eInfo.cbSize = sizeof(SHELLEXECUTEINFO);
eInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
// He probado con y sin esta linea ...
eInfo.hwnd = NULL;
eInfo.lpVerb = _T("open");
memset(par, 0, MAX_LOADSTRING);
AddDobleQuotes(params, par);
// Añado dos (" ) por cada una que encuentre.
eInfo.lpFile = program;
eInfo.lpParameters = par;
eInfo.nShow = SW_SHOWNORMAL;
if (ShellExecuteEx(&eInfo) == 0) {
//Error. no se ejecuto el programa.
}
else {
//El programa se ejecuto.
}
Alguien puede ayudarme ?
Necesito hacer que de algun modo la función ShellExecuteEx se quede esperando hasta que el programa al que se llamó termine.
Hasta ahora he seteado en la estructura SHELLEXECUTEINFO el campo fMask con y sin el valor SEE_MASK_NOCLOSEPROCESS, esperando que cuando este valor no esté seteado la función espere que el programa termine, pero esto no ocurre.
El código es el siguiente:
SHELLEXECUTEINFO eInfo;
memset(&eInfo, 0, sizeof(SHELLEXECUTEINFO));
eInfo.cbSize = sizeof(SHELLEXECUTEINFO);
eInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
// He probado con y sin esta linea ...
eInfo.hwnd = NULL;
eInfo.lpVerb = _T("open");
memset(par, 0, MAX_LOADSTRING);
AddDobleQuotes(params, par);
// Añado dos (" ) por cada una que encuentre.
eInfo.lpFile = program;
eInfo.lpParameters = par;
eInfo.nShow = SW_SHOWNORMAL;
if (ShellExecuteEx(&eInfo) == 0) {
//Error. no se ejecuto el programa.
}
else {
//El programa se ejecuto.
}
Alguien puede ayudarme ?
Valora esta pregunta


0