Condividi tramite


Funzione SHEvaluateSystemCommandTemplate (shellapi.h)

Applica la convalida rigorosa dei parametri usati in una chiamata a CreateProcess o ShellExecute.

Sintassi

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

Parametri

[in] pszCmdTemplate

Tipo: PCWSTR

Riga di comando, che può includere o meno parametri. Se i parametri sono parametri di sostituzione, è necessario chiamare SHEvaluateSystemCommandTemplate prima che i parametri siano stati sostituiti.

[out] ppszApplication

Tipo: PWSTR*

Puntatore al percorso verificato dell'applicazione. Questo valore deve essere passato come parametro lpApplication in una chiamata a CreateProcess o come parametro lpFile in una chiamata a ShellExecute. Questa risorsa viene allocata usando CoTaskMemAlloc ed è responsabilità del chiamante liberare la risorsa quando non è più necessaria chiamando CoTaskMemFree.

[out, optional] ppszCommandLine

Tipo: PWSTR*

Puntatore a un modello di stringa della riga di comando da usare in una chiamata a CreateProcess. I parametri della riga di comando devono essere specificati in base a questo modello e quindi passati come parametro lpCommandLine a CreateProcess. È garantito che sia di un modulo che PathGetArgs può sempre leggere correttamente. Questa risorsa viene allocata usando CoTaskMemAlloc ed è responsabilità del chiamante liberare la risorsa quando non è più necessaria chiamando CoTaskMemFree.

Questo parametro può essere NULL se questa funzione non viene usata in associazione a una chiamata a CreateProcess.

[out, optional] ppszParameters

Tipo: PWSTR*

Puntatore a un modello di stringa della riga di comando da usare in una chiamata a ShellExecute. I parametri della riga di comando devono essere specificati in base a questo modello e quindi passati come parametro lpParameters a ShellExecute. Questo parametro è identico alla chiamata di PathGetArgs. Questa risorsa viene allocata usando CoTaskMemAlloc ed è responsabilità del chiamante liberare la risorsa quando non è più necessaria chiamando CoTaskMemFree.

Questo parametro può essere NULL se questa funzione non viene usata in associazione a una chiamata a CreateProcess.

Valore restituito

Tipo: HRESULT

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Osservazioni:

Questa funzione viene usata quando un processo chiamante richiede il comportamento deterministico da un modello di comando, indipendentemente dal contesto di esecuzione. Ignora lo stato del processo corrente, ad esempio , GetCurrentDirectory e la directory del %PATH%processo padre.

Questa funzione viene usata quando il comando è hardcoded.

Questa funzione viene usata da ShellExecute quando si gestiscono le associazioni di file da HKEY_CLASSES_ROOT. Lo scopo di questa funzione è ridurre gli exploit della riga di comando CreateProcess . Non è progettato per l'elaborazione dell'input dell'utente e se usato a tale scopo può generare errori imprevisti.

Requisiti

Requisito Value
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Header shellapi.h
Library OneCore.Lib
DLL Shell32.dll
Set di API ext-ms-win-shell-shell32-l1-2-2 (introdotto in Windows 10, versione 10.0.14393)