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 |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 5.0 以降) |