SHCREATEPROCESSINFOW 구조체(shellapi.h)
[SHCreateProcessAsUserW 더 이상 Windows XP 이상 버전에서 구현되지 않습니다.]
프로세스를 만드는 데 SHCreateProcessAsUserW 필요한 정보를 포함합니다.
통사론
typedef struct _SHCREATEPROCESSINFOW {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCWSTR pszFile;
LPCWSTR pszParameters;
LPCWSTR pszCurrentDirectory;
HANDLE hUserToken;
LPSECURITY_ATTRIBUTES lpProcessAttributes;
LPSECURITY_ATTRIBUTES lpThreadAttributes;
BOOL bInheritHandles;
DWORD dwCreationFlags;
LPSTARTUPINFOW lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInformation;
} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;
회원
cbSize
형식: DWORD
이 구조체의 크기(바이트)입니다.
fMask
형식: ULONG
다른 구조체 멤버의 내용과 유효성을 나타내는 플래그 배열입니다. 다음 값의 조합일 수 있습니다.
SEE_MASK_CLASSKEY
파일의 클래스 레지스트리 키를 사용합니다.
SEE_MASK_CLASSNAME
파일의 클래스 이름을 사용합니다.
SEE_MASK_CONNECTNETDRV
공유의 유효성을 검사하고 드라이브 문자에 연결합니다. pszFile 멤버는 네트워크에 있는 파일의 UNC 경로입니다.
SEE_MASK_DOENVSUBST
환경 변수를 확장합니다.
SEE_MASK_FLAG_DDEWAIT
반환하기 전에 DDE 대화가 종료되기를 기다립니다.
SEE_MASK_FLAG_NO_UI
오류가 발생하면 오류 메시지 상자를 표시하지 마세요.
SEE_MASK_HMONITOR
다중 모니터 시스템에서 모니터를 지정할 때 이 플래그를 사용합니다.
SEE_MASK_NOCLOSEPROCESS
애플리케이션이 프로세스를 닫습니다.
lpProcessInformation 멤버가 유효한 PROCESS_INFORMATION 포인터이고 SEE_MASK_NOCLOSEPROCESS 설정된 경우 SHCreateProcessAsUserW 반환될 때 프로세스가 열린 상태로 유지됩니다.
hProcess 및 hThreadPROCESS_INFORMATION 구조체의 멤버는 각각 프로세스와 스레드 핸들을 보유합니다. 이 플래그는 일반적으로 애플리케이션이 SHCreateProcessAsUserW 사용하여 만든 프로세스가 종료되는 시기를 확인할 수 있도록 설정됩니다. DDE 대화를 통해 실행이 충족되는 경우와 같은 경우에 핸들이 반환되지 않습니다. 호출 애플리케이션은 더 이상 필요하지 않을 때 핸들을 닫습니다. 이 플래그를 설정하지 않으면
SEE_MASK_NO_CONSOLE
부모의 콘솔을 상속하는 대신 새 프로세스에 대한 콘솔을 만듭니다. CreateProcess
SEE_MASK_UNICODE
유니코드 애플리케이션을 나타냅니다.
hwnd
형식: HWND
부모 창 핸들입니다.
pszFile
형식: LPCWSTR
SHCreateProcessAsUserWrunas 동사에서 지정한 작업을 수행할 실행 파일을 지정하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. runas 동사는 파일의 클래스에서 지원되어야 합니다.
pszParameters
형식: LPCWSTR
애플리케이션 매개 변수를 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 매개 변수는 공백으로 구분해야 합니다.
pszCurrentDirectory
형식: LPCWSTR
현재 디렉터리를 포함하는 null로 끝나는 유니코드 문자열입니다.
hUserToken
형식: HANDLE
특정 사용자를 나타내는 데 사용할 수 있는 액세스 토큰. 단일 사용자에 속하는 것으로 처리되는 폴더에 대해 여러 사용자가 있는 경우 필요합니다. 호출 애플리케이션에는 TOKEN_QUERY 및 TOKEN_IMPERSONATE 포함하여 특정 사용자에 대한 적절한 보안 권한이 있어야 하며 사용자의 레지스트리 하이브는 현재 탑재되어야 합니다. 액세스 제어 문제에 대한 자세한 내용은 Access Control참조하세요.
lpProcessAttributes
형식: LPSECURITY_ATTRIBUTES
새 프로세스에 대한 보안 설명자가 있는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. 또한 자식 프로세스를 상속할 수 있는지 여부를 지정합니다. 이 매개 변수가 NULL
보안 경고: 보안 설명자를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 자세한 내용은 SECURITY_ATTRIBUTES참조하세요.
lpThreadAttributes
형식: LPSECURITY_ATTRIBUTES
새 스레드에 대한 보안 설명자가 있는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. 또한 자식 프로세스를 상속할 수 있는지 여부를 지정합니다. 이 매개 변수가 NULL
보안 경고: 보안 설명자를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 자세한 내용은 SECURITY_ATTRIBUTES참조하세요.
bInheritHandles
형식: BOOL
새 프로세스가 호출 프로세스에서 핸들을 상속하는지 여부를 나타내는 표시기입니다. TRUE
dwCreationFlags
형식: DWORD
프로세스 및 우선 순위 클래스의 생성을 제어하는 플래그입니다. 사용 가능한 플래그 목록은 CreateProcessAsUser참조하세요.
lpStartupInfo
형식: LPSTARTUPINFOW
새 프로세스의 주 창이 표시되는 방식을 지정하는 STARTUPINFO 구조체에 대한 포인터입니다.
lpProcessInformation
형식: LPPROCESS_INFORMATION
새 프로세스에 대한 정보를 수신하는 PROCESS_INFORMATION 구조체에 대한 포인터입니다. 이 멤버를 유효한 구조 포인터로 설정하고 fMask 멤버에서 SEE_MASK_NOCLOSEPROCESS 플래그를 설정하면 함수가 반환될 때 프로세스가 열린 상태로 유지됩니다. PROCESS_INFORMATION 구조체의 hProcess 및 hThread 멤버는 프로세스와 스레드 핸들을 각각 보유합니다. 이 멤버를 NULL설정하면 함수가 반환되기 전에 프로세스가 닫힙니다.
발언
pszParameters
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";
이 경우 애플리케이션은 An, example: 및 "quoted text"세 개의 매개 변수를 받습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional, Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
헤더 | shellapi.h |