共用方式為


SHEvaluateSystemCommandTemplate 函式 (shellapi.h)

強制嚴格驗證呼叫 CreateProcessShellExecute 中使用的參數。

語法

SHSTDAPI SHEvaluateSystemCommandTemplate(
  [in]            PCWSTR pszCmdTemplate,
  [out]           PWSTR  *ppszApplication,
  [out, optional] PWSTR  *ppszCommandLine,
  [out, optional] PWSTR  *ppszParameters
);

參數

[in] pszCmdTemplate

類型: PCWSTR

命令列,其中可能包含參數,也可能不包含參數。 如果參數是替代參數,則應該在取代參數之前呼叫 SHEvaluateSystemCommandTemplate

[out] ppszApplication

類型: PWSTR*

指向應用程式已驗證路徑的指標。 此值應該在呼叫 CreateProcess 時傳遞為 lpApplication 參數,或在呼叫 ShellExecute 時傳遞為 lpFile 參數。 此資源是使用 CoTaskMemAlloc 配置,呼叫端負責在不再需要資源時呼叫 CoTaskMemFree 來釋放資源。

[out, optional] ppszCommandLine

類型: PWSTR*

命令列字串範本的指標,要用於呼叫 CreateProcess 。 命令列參數應該根據此範本指定,然後以 lpCommandLine 參數的形式傳遞至 CreateProcess。 保證是 PathGetArgs 一律可以正確讀取的形式。 此資源是使用 CoTaskMemAlloc 配置,呼叫端負責在不再需要資源時呼叫 CoTaskMemFree 來釋放資源。

如果此函式未與呼叫 CreateProcess 相關聯,則此參數可以是 Null

[out, optional] ppszParameters

類型: PWSTR*

命令列字串範本的指標,要用於呼叫 ShellExecute。 命令列參數應該根據此範本指定,然後以 lpParameters 參數的形式傳遞給 ShellExecute。 此參數與呼叫 PathGetArgs 相同。 此資源是使用 CoTaskMemAlloc 配置,呼叫端負責在不再需要資源時呼叫 CoTaskMemFree 來釋放資源。

如果此函式未與呼叫 CreateProcess 相關聯,則此參數可以是 Null

返回值

類型:HRESULT

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

當呼叫處理程序需要命令範本的決定性行為時,會使用此函式,而不論執行內容為何。 它會忽略目前的進程狀態,例如 %PATH%GetCurrentDirectory 和父進程目錄。

當命令是硬式編碼時,會使用此函式。

ShellExecute 在處理來自 HKEY_CLASSES_ROOT 的檔案關聯時會使用此函式。 此函式的目的是減少 CreateProcess 命令列惡意探索。 它不是為處理使用者輸入而設計的,如果用於此目的,可能會產生非預期的失敗。

需求

Requirement 價值觀
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
Header shellapi.h
Library OneCore.Lib
DLL Shell32.dll
API 集 ext-ms-win-shell-shell32-l1-2-2 (Windows 10 版本 10.0.14393 中引進)