SHCreateProcessAsUserW 函数 (shellapi.h)

[SHCreateProcessAsUserW 未在 Windows XP 或更高版本的系统下实现。]

创建新的用户模式进程及其主线程以运行指定的可执行文件。

语法

BOOL SHCreateProcessAsUserW(
  [in, out] PSHCREATEPROCESSINFOW pscpi
);

参数

[in, out] pscpi

类型: PSHCREATEPROCESSINFOW

指向 SHCREATEPROCESSINFOW 结构的指针,其中包含有关如何创建进程的信息。

返回值

类型: BOOL

如果成功,则返回 TRUE ,否则返回 FALSE 。 若要检索扩展的错误信息,请调用 GetLastError

注解

此函数类似于 ShellExecuteEx使用 runas 作为谓词。 但是,SHCreateProcessAsUserW 创建一个进程,该进程在由 pscpi 指向的结构的 hUserToken 成员表示的用户的安全上下文中运行。 lpProcessInformation 成员可用于返回包含新进程信息的 PROCESS_INFORMATION 结构。

可执行文件的文件类型必须支持 runas 谓词。 .exe 文件类型支持 运行方式。 使用 AssocQueryString 函数检查运行方式是否受其他文件类型支持。 以下代码片段演示了 语法。

AssocQueryString(0, ASSOCSTR_COMMAND, pszFile, TEXT("runas"), NULL, &cchVerb)

有关如何使用 Shell 启动应用程序的讨论,请参阅 启动应用程序

Windows XP 不支持 SHCreateProcessAsUserW。 需要类似功能的用户应检查 CreateProcessCreateProcessAsUserCreateProcessWithLogonWShellExecuteExecuteEx,并根据所需的功能和安全性仔细评估每个功能。 如有必要,可以使用 IQueryAssociations 提取与 CreateProcess 一起使用的信息。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shellapi.h
Library Shell32.lib
DLL Shell32.dll (5.0 或更高版本)

另请参阅

CreateProcess

CreateProcessAsUser

CreateProcessWithLogonW

ShellExecuteEx