Condividi tramite


Funzione SHEvaluateSystemCommandTemplate (shellapi.h)

Applica una 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 con 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 con 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 .

Commenti

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 , %PATH%GetCurrentDirectory e la directory del processo padre.

Questa funzione viene usata quando il comando è hardcoded.

Questa funzione viene usata da ShellExecute durante la gestione delle 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 Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shellapi.h
DLL Shell32.dll
Set di API ext-ms-win-shell-shell32-l1-2-2 (introdotto in Windows 10, versione 10.0.14393)