次の方法で共有


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 戻ったときにプロセスは開いたままになります。 hProcesshThreadPROCESS_INFORMATION 構造体のメンバーは、それぞれプロセス ハンドルとスレッド ハンドルを保持します。 通常、このフラグは、SHCreateProcessAsUserW で作成されたプロセスがいつ終了するかをアプリケーション 確認できるように設定されます。 DDE 会話を通じて実行が満たされた場合など、ハンドルが返されない場合があります。 呼び出し元のアプリケーションは、不要になったときにハンドルを閉じる役割を担います。 このフラグが設定されていない場合、lpProcessInformation が有効なポインターであっても、SHCreateProcessAsUserW が返される前にプロセスが閉じられます。

SEE_MASK_NO_CONSOLE

親のコンソールを継承するのではなく、新しいプロセス用のコンソールを作成します。 これは、CreateProcessでCREATE_NEW_CONSOLE フラグ 使用することと同じです。

SEE_MASK_UNICODE

Unicode アプリケーションを示します。

hwnd

型: HWND

親ウィンドウ ハンドル。

pszFile

型: LPCWSTR

SHCreateProcessAsUserW runas 動詞で指定されたアクションを実行する実行可能ファイルを指定する、null で終わる Unicode 文字列へのポインター。 runas 動詞は、ファイルのクラスでサポートされている必要があります。

パスがファイル名に含まれていない場合は、現在のディレクトリが想定されます。
 

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 フラグを設定すると、関数が戻ったときにプロセスが開いたままになります。 PROCESS_INFORMATION 構造体の hProcess と hThread メンバー は、それぞれプロセス ハンドルとスレッド ハンドルを保持します。 このメンバーを NULL設定すると、関数が戻る前にプロセスが閉じられます。

備考

pszParametersに二重引用符 含めるには、次の例のように、各マークを二重引用符で囲む必要があります。

sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";

この場合、アプリケーションは 3 つのパラメーターを受け取ります:An、例:、および "引用符で囲まれたテキスト"

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー shellapi.h

関連項目

SHELLEXECUTEINFO