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


Функция SHCreateProcessAsUserW (shellapi.h)

[SHCreateProcessAsUserW не реализовано в системах Windows XP или более поздних версий.]

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

Синтаксис

BOOL SHCreateProcessAsUserW(
  [in, out] PSHCREATEPROCESSINFOW pscpi
);

Параметры

[in, out] pscpi

Тип: PSHCREATEPROCESSINFOW

Указатель на структуру SHCREATEPROCESSINFOW со сведениями о создании процесса.

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

Тип: BOOL

Возвращает значение TRUE в случае успешного выполнения или FALSE , если нет. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Комментарии

Эта функция похожа на ShellExecuteEx с командой runas . Однако SHCreateProcessAsUserW создает процесс, который выполняется в контексте безопасности пользователя, представленного элементом hUserToken структуры, на которую указывает pscpi. Элемент lpProcessInformation можно использовать для возврата PROCESS_INFORMATION структуры с информацией о новом процессе.

Команда runas должна поддерживаться типом файла исполняемого файла. Тип файла .exe поддерживает запуски. Используйте функцию AssocQueryString, чтобы проверка, поддерживаются ли запуски другими типами файлов. Следующий фрагмент кода иллюстрирует синтаксис.

AssocQueryString(0, ASSOCSTR_COMMAND, pszFile, TEXT("runas"), NULL, &cchVerb)

Описание использования оболочки для запуска приложений см. в разделе Запуск приложений.

SHCreateProcessAsUserW не поддерживается в Windows XP. Пользователям, которым требуются аналогичные функции, следует изучить CreateProcess, CreateProcessAsUser, CreateProcessWithLogonW и ShellExecuteEx, тщательно оценивая каждый из них на основе требуемых функций и безопасности. При необходимости можно использовать IQueryAssociations для извлечения сведений, используемых с CreateProcess.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional, Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header shellapi.h
Библиотека Shell32.lib
DLL Shell32.dll (версия 5.0 или более поздняя)

См. также раздел

CreateProcess

CreateProcessAsUser

CreateProcessWithLogonW

ShellExecuteEx