La Red de Conocimientos Pedagógicos - Currículum vitae - ShellExecute puede abrir un archivo exe por primera vez, pero devuelve 26 la segunda vez. ¿Cómo solucionarlo?

ShellExecute puede abrir un archivo exe por primera vez, pero devuelve 26 la segunda vez. ¿Cómo solucionarlo?

Simplemente usar ShellExecute para abrir dos archivos diferentes continuamente provocará un bloqueo, y vs también se bloqueará al mismo tiempo. Y el archivo que se está abriendo no se ha abierto antes. El uso de la función WaitForSingleObject esperará a que se cierre el archivo abierto antes de continuar ejecutando el programa principal. Aunque no provocará que el programa se bloquee, afectará la experiencia del usuario. El problema aún no está completamente resuelto SHELLEXECUTEINFO?sei;

memset(amp;sei,?0,?sizeof(SHELLEXECUTEINFO));?

sei.cbSize?=?sizeof( SHELLEXECUTEINFO) ;

sei.fMask?=?SEE_MASK_NOCLOSEPROCESS;

sei.lpVerb?=?_T("open");

sei.lpFile?= ?_T ("aa.exe");

sei.nShow?=?SW_SHOWDEFAULT;

ShellExecuteEx(amp;sei);

WaitForSingleObject(sei. hProcess, ?INFINITE);

CloseHandle(sei.hProcess);

Referencia: bbs.csdn.net/topics/30063042