Функция 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 или более поздняя) |