SHCreateProcessAsUserW 함수(shellapi.h)
[SHCreateProcessAsUserW 는 Windows XP 이상 시스템에서 구현되지 않습니다.]
지정된 실행 파일을 실행하는 새 사용자 모드 프로세스 및 기본 스레드를 만듭니다.
구문
BOOL SHCreateProcessAsUserW(
[in, out] PSHCREATEPROCESSINFOW pscpi
);
매개 변수
[in, out] pscpi
형식: PSHCREATEPROCESSINFOW
프로세스를 만드는 방법에 대한 정보가 포함된 SHCREATEPROCESSINFOW 구조체에 대한 포인터입니다.
반환 값
형식: BOOL
성공하면 TRUE 를 반환하고 그렇지 않으면 FALSE를 반환 합니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다.
설명
이 함수는 runas를 동사로 사용하는 ShellExecuteEx와 유사합니다. 그러나 SHCreateProcessAsUserW는 pscpi가 가리키는 구조체의 hUserToken 멤버가 나타내는 사용자의 보안 컨텍스트에서 실행되는 프로세스를 만듭니다. lpProcessInformation 멤버를 사용하여 새 프로세스에 대한 정보가 포함된 PROCESS_INFORMATION 구조를 반환할 수 있습니다.
실행 파일의 파일 형식에서 runas 동사를 지원해야 합니다. .exe 파일 형식은 runas를 지원합니다. AssocQueryString 함수를 사용하여 runas가 다른 파일 형식에서 지원되는지 여부를 검사. 다음 코드 조각에서는 구문을 보여 줍니다.
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 |
헤더 | shellapi.h |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 5.0 이상) |