Compartir a través de


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)

Consulte también

CreateProcess

CreateProcessAsUser

CreateProcessWithLogonW

ShellExecuteEx