Función SHEvaluateSystemCommandTemplate (shellapi.h)

Aplica una validación estricta de los parámetros usados en una llamada a CreateProcess o ShellExecute.

Sintaxis

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

Parámetros

[in] pszCmdTemplate

Tipo: PCWSTR

Línea de comandos, que puede incluir o no parámetros. Si los parámetros son parámetros de sustitución, se debe llamar a SHEvaluateSystemCommandTemplate antes de reemplazar los parámetros.

[out] ppszApplication

Tipo: PWSTR*

Puntero a la ruta de acceso comprobada a la aplicación. Este valor se debe pasar como el parámetro lpApplication en una llamada a CreateProcess o como el parámetro lpFile en una llamada a ShellExecute. Este recurso se asigna mediante CoTaskMemAlloc y es responsabilidad del autor de la llamada liberar el recurso cuando ya no es necesario llamando a CoTaskMemFree.

[out, optional] ppszCommandLine

Tipo: PWSTR*

Puntero a una plantilla de cadena de línea de comandos que se usará en una llamada a CreateProcess. Los parámetros de la línea de comandos se deben especificar en función de esta plantilla y, a continuación, se deben pasar como el parámetro lpCommandLine a CreateProcess. Se garantiza que es de un formulario que PathGetArgs siempre puede leer correctamente. Este recurso se asigna mediante CoTaskMemAlloc y es responsabilidad del autor de la llamada liberar el recurso cuando ya no es necesario llamando a CoTaskMemFree.

Este parámetro puede ser NULL si esta función no se usa en asociación con una llamada a CreateProcess.

[out, optional] ppszParameters

Tipo: PWSTR*

Puntero a una plantilla de cadena de línea de comandos que se usará en una llamada a ShellExecute. Los parámetros de la línea de comandos se deben especificar en función de esta plantilla y, a continuación, se deben pasar como el parámetro lpParameters a ShellExecute. Este parámetro es idéntico a llamar a PathGetArgs. Este recurso se asigna mediante CoTaskMemAlloc y es responsabilidad del autor de la llamada liberar el recurso cuando ya no es necesario llamando a CoTaskMemFree.

Este parámetro puede ser NULL si esta función no se usa en asociación con una llamada a CreateProcess.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Esta función se usa cuando un proceso de llamada necesita el comportamiento determinista de una plantilla de comandos, independientemente del contexto de ejecución. Omite el estado del proceso actual, como el %PATH%directorio de proceso principal , GetCurrentDirectory y .

Esta función se usa cuando el comando está codificado de forma rígida.

ShellExecute usa esta función al controlar asociaciones de archivos de HKEY_CLASSES_ROOT. El propósito de esta función es reducir las vulnerabilidades de seguridad de la línea de comandos createProcess . No está diseñado para procesar la entrada del usuario y, si se usa para ese propósito, puede generar errores inesperados.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shellapi.h
Archivo DLL Shell32.dll
Conjunto de API ext-ms-win-shell-shell32-l1-2-2 (introducido en Windows 10, versión 10.0.14393)