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) |