Función SHCreateProcessAsUserW (shellapi.h)
[SHCreateProcessAsUserW no se implementa en Windows XP ni en sistemas posteriores.]
Crea un nuevo proceso en modo de usuario y su subproceso principal para ejecutar un archivo ejecutable especificado.
Sintaxis
BOOL SHCreateProcessAsUserW(
[in, out] PSHCREATEPROCESSINFOW pscpi
);
Parámetros
[in, out] pscpi
Tipo: PSHCREATEPROCESSINFOW
Puntero a una estructura SHCREATEPROCESSINFOW con información sobre cómo crear el proceso.
Valor devuelto
Tipo: BOOL
Devuelve TRUE si se ejecuta correctamente o FALSE si no es así. Para recuperar información de error extendida, llame a GetLastError.
Comentarios
Esta función es similar a ShellExecuteEx con runas como verbo. Sin embargo, SHCreateProcessAsUserW crea un proceso que se ejecuta en el contexto de seguridad del usuario representado por el miembro hUserToken de la estructura a la que apunta pscpi. El miembro lpProcessInformation se puede usar para devolver una estructura de PROCESS_INFORMATION con información sobre el nuevo proceso.
El verbo runas debe ser compatible con el tipo de archivo ejecutable. El tipo de archivo .exe admite runas. Use la función AssocQueryString para comprobar si otros tipos de archivo admiten runas . El siguiente fragmento de código ilustra la sintaxis.
AssocQueryString(0, ASSOCSTR_COMMAND, pszFile, TEXT("runas"), NULL, &cchVerb)
Para obtener una explicación sobre cómo usar shell para iniciar aplicaciones, consulte Launch Applications (Iniciar aplicaciones).
SHCreateProcessAsUserW no se admite en Windows XP. Los usuarios que requieren una funcionalidad similar deben examinar CreateProcess, CreateProcessAsUser, CreateProcessWithLogonW y ShellExecuteEx, evaluando cuidadosamente cada uno en función de la funcionalidad y la seguridad necesarias. IQueryAssociations se puede usar para extraer información utilizada con CreateProcess, si es necesario.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shellapi.h |
Library | Shell32.lib |
Archivo DLL | Shell32.dll (versión 5.0 o posterior) |