Функция SHEvaluateSystemCommandTemplate (shellapi.h)
Обеспечивает строгую проверку параметров, используемых при вызове CreateProcess или ShellExecute.
Синтаксис
SHSTDAPI SHEvaluateSystemCommandTemplate(
[in] PCWSTR pszCmdTemplate,
[out] PWSTR *ppszApplication,
[out, optional] PWSTR *ppszCommandLine,
[out, optional] PWSTR *ppszParameters
);
Параметры
[in] pszCmdTemplate
Тип: PCWSTR
Командная строка, которая может содержать или не включать параметры. Если параметры являются параметрами подстановки, перед заменой параметров необходимо вызвать SHEvaluateSystemCommandTemplate .
[out] ppszApplication
Тип: PWSTR*
Указатель на проверенный путь к приложению. Это значение должно передаваться как параметр lpApplication при вызове CreateProcess или как параметр lpFile в вызове ShellExecute. Этот ресурс выделяется с помощью CoTaskMemAlloc, и вызывающий объект отвечает за освобождение ресурса, когда он больше не нужен, путем вызова CoTaskMemFree.
[out, optional] ppszCommandLine
Тип: PWSTR*
Указатель на шаблон строки командной строки, используемый при вызове CreateProcess. Параметры командной строки должны быть указаны на основе этого шаблона, а затем переданы в createProcess в качестве параметра lpCommandLine. Он гарантированно будет иметь форму, которую PathGetArgs всегда может читать правильно. Этот ресурс выделяется с помощью CoTaskMemAlloc, и вызывающий объект отвечает за освобождение ресурса, когда он больше не нужен, путем вызова CoTaskMemFree.
Этот параметр может иметь значение NULL , если эта функция не используется в связи с вызовом CreateProcess.
[out, optional] ppszParameters
Тип: PWSTR*
Указатель на шаблон командной строки для использования в вызове ShellExecute. Параметры командной строки должны быть заданы на основе этого шаблона, а затем переданы в качестве параметра lpParametersв ShellExecute. Этот параметр идентичен вызову PathGetArgs. Этот ресурс выделяется с помощью CoTaskMemAlloc, и вызывающий объект отвечает за освобождение ресурса, когда он больше не нужен, путем вызова CoTaskMemFree.
Этот параметр может иметь значение NULL , если эта функция не используется в связи с вызовом CreateProcess.
Возвращаемое значение
Тип: HRESULT
Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Эта функция используется, когда вызывающему процессу требуется детерминированное поведение из шаблона команды независимо от контекста выполнения. Он игнорирует текущее состояние процесса, например %PATH%
, GetCurrentDirectory и каталог родительского процесса.
Эта функция используется при жестком коде команды.
Эта функция используется ShellExecute при обработке сопоставлений файлов из HKEY_CLASSES_ROOT. Эта функция предназначена для уменьшения числа эксплойтов командной строки CreateProcess . Он не предназначен для обработки пользовательских входных данных и при использовании для этой цели может привести к непредвиденным сбоям.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | shellapi.h |
DLL | Shell32.dll |
Набор API | ext-ms-win-shell-shell32-l1-2-2 (представлено в Windows 10 версии 10.0.14393) |