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。 需要类似功能的用户应检查 CreateProcess、 CreateProcessAsUser、 CreateProcessWithLogonW 和 ShellExecuteExecuteEx,并根据所需的功能和安全性仔细评估每个功能。 如有必要,可以使用 IQueryAssociations 提取与 CreateProcess 一起使用的信息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shellapi.h |
Library | Shell32.lib |
DLL | Shell32.dll (5.0 或更高版本) |