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 檔類型支援 runas。 使用 AssocQueryString 函式來檢查其他文件類型是否支援 runas 。 下列代碼段說明語法。
AssocQueryString(0, ASSOCSTR_COMMAND, pszFile, TEXT("runas"), NULL, &cchVerb)
如需如何使用Shell啟動應用程式的討論,請參閱 啟動應用程式。
Windows XP 不支援 SHCreateProcessAsUserW。 需要類似功能的使用者應該檢查 CreateProcess、 CreateProcessAsUser、 CreateProcessWithLogonW 和 ShellExecuteEx,仔細評估每個專案,根據必要的功能和安全性。 如有必要,IQueryAssociations 可用來擷取與 CreateProcess 搭配使用的資訊。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional、Windows XP [僅限桌面應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | shellapi.h |
程式庫 | Shell32.lib |
Dll | Shell32.dll (5.0 版或更新版本) |