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
アプリケーションによってプロセスが閉じられます。
SEE_MASK_NO_CONSOLE
親のコンソールを継承するのではなく、新しいプロセス用のコンソールを作成します。 これは、CreateProcessでCREATE_NEW_CONSOLE フラグ
SEE_MASK_UNICODE
Unicode アプリケーションを示します。
hwnd
型: HWND
親ウィンドウ ハンドル。
pszFile
型: LPCWSTR
SHCreateProcessAsUserW
pszParameters
型: LPCWSTR
アプリケーション パラメーターを含む null で終わる Unicode 文字列へのポインター。 パラメーターはスペースで区切る必要があります。
pszCurrentDirectory
型: LPCWSTR
現在のディレクトリを含む null で終わる Unicode 文字列。
hUserToken
型: HANDLE
特定のユーザーを表すために使用できる アクセス トークン。 1 人のユーザーに属していると扱われるフォルダーに複数のユーザーが存在する場合に必要です。 呼び出し元のアプリケーションには、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 フラグを設定すると、関数が戻ったときにプロセスが開いたままになります。
備考
pszParametersに二重引用符
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";
この場合、アプリケーションは 3 つのパラメーターを受け取ります:An、例:、および "引用符で囲まれたテキスト"。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ヘッダー | shellapi.h |