Поделиться через


Функция 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. Параметры командной строки должны быть указаны на основе этого шаблона, а затем передаваться в качестве параметра lpCommandLineв CreateProcess. Это гарантируется, что ПутьGetArgs всегда может правильно читать. Этот ресурс выделяется с помощью CoTaskMemAlloc, и он несет ответственность за освобождение ресурса, если он больше не нужен путем вызова CoTaskMemFree.

Этот параметр может иметь значение NULL , если эта функция не используется в связи с вызовом CreateProcess.

[out, optional] ppszParameters

Тип: PWSTR*

Указатель на шаблон строки командной строки, используемый в вызове ShellExecute. Параметры командной строки следует указывать на основе этого шаблона, а затем передавать в ShellExecute в качестве параметра lpParameters. Этот параметр идентичен вызову PathGetArgs. Этот ресурс выделяется с помощью CoTaskMemAlloc, и он несет ответственность за освобождение ресурса, если он больше не нужен путем вызова CoTaskMemFree.

Этот параметр может иметь значение NULL , если эта функция не используется в связи с вызовом CreateProcess.

Возвращаемое значение

Тип: HRESULT

Если эта функция выполнена успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Замечания

Эта функция используется, когда вызывающий процесс нуждается в детерминированном поведении из шаблона команды независимо от контекста выполнения. Он игнорирует текущее состояние процесса, например %PATH%каталог GetCurrentDirectory и родительский каталог процессов.

Эта функция используется при жестко закодированном коде команды.

Эта функция используется ShellExecute при обработке сопоставлений файлов из HKEY_CLASSES_ROOT. Эта функция предназначена для уменьшения эксплойтов командной строки CreateProcess . Он не предназначен для обработки входных данных пользователей, и если он используется для этой цели, может привести к непредвиденным сбоям.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
Header shellapi.h
Library OneCore.Lib
DLL Shell32.dll
Набор API ext-ms-win-shell-shell32-l1-2-2 (представлено в Windows 10 версии 10.0.14393)