次の方法で共有


ShellExecuteW 関数 (shellapi.h)

指定したファイルに対して操作を実行します。

構文

HINSTANCE ShellExecuteW(
  [in, optional] HWND    hwnd,
  [in, optional] LPCWSTR lpOperation,
  [in]           LPCWSTR lpFile,
  [in, optional] LPCWSTR lpParameters,
  [in, optional] LPCWSTR lpDirectory,
  [in]           INT     nShowCmd
);

パラメーター

[in, optional] hwnd

型: HWND

UI またはエラー メッセージの表示に使用される親ウィンドウへのハンドル。 操作がウィンドウに関連付けられていない場合、この値は NULL できます。

[in, optional] lpOperation

型: LPCTSTR

null-terminated 文字列へのポインター 。この場合は、実行するアクションを指定する 動詞と呼ばれます。 使用可能な動詞のセットは、特定のファイルまたはフォルダーによって異なります。 一般に、オブジェクトのショートカット メニューから使用できるアクションは、動詞として使用できます。 次の動詞が一般的に使用されます。

編集

エディターを起動し、編集用にドキュメントを開きます。 lpFile ドキュメント ファイルでない場合、関数は失敗します。

探る

lpFileで指定されたフォルダー 探索します。

見付ける

lpDirectoryで指定されたディレクトリから検索 開始します。

開ける

lpFile パラメーターで指定された項目を開きます。 アイテムには、ファイルまたはフォルダーを指定できます。

プリント

lpFileで指定 ファイルを出力します。 lpFile ドキュメント ファイルでない場合、関数は失敗します。

runas

管理者としてアプリケーションを起動します。 ユーザー アカウント制御 (UAC) は、アプリケーションを管理者特権で実行するか、アプリケーションの実行に使用する管理者アカウントの資格情報を入力する同意をユーザーに求めます。

ヌル

使用可能な場合は、既定の動詞が使用されます。 そうでない場合は、"open" 動詞が使用されます。 どちらの動詞も使用できない場合、システムはレジストリに記載されている最初の動詞を使用します。

[in] lpFile

型: LPCTSTR

指定した動詞を実行するファイルまたはオブジェクトを指定する、null終了文字列へのポインター。 シェル名前空間オブジェクトを指定するには、完全修飾解析名を渡します。 すべてのオブジェクトですべての動詞がサポートされているわけではないことに注意してください。 たとえば、すべてのドキュメントの種類で "print" 動詞がサポートされているわけではありません。 lpDirectory パラメーターに相対パスを使用する場合は、lpFileの相対パス 使用しないでください。

[in, optional] lpParameters

型: LPCTSTR

lpFile 実行可能ファイルを指定する場合、このパラメーターは、アプリケーションに渡されるパラメーターを指定する null-terminated 文字列へのポインターです。 この文字列の形式は、呼び出される動詞によって決まります。 lpFile ドキュメント ファイルを指定する場合は、lpParameters NULLする必要があります。

[in, optional] lpDirectory

型: LPCTSTR

アクションの既定の (作業) ディレクトリを指定する、null終了文字列へのポインター。 この値が NULL場合は、現在の作業ディレクトリが使用されます。 lpFile相対パスが指定されている場合は、lpDirectory相対パスを使用しないでください。

[in] nShowCmd

型: INT

アプリケーションを開くときに表示する方法を指定するフラグ。 lpFile ドキュメント ファイルを指定する場合、フラグは関連付けられているアプリケーションに渡されます。 その処理方法を決めるのはアプリケーションの判断です。 ShowWindow 関数の nCmdShow パラメーターで指定できる任意の値を指定できます。

戻り値

型: HINSTANCE

関数が成功すると、32 より大きい値が返されます。 関数が失敗した場合は、エラーの原因を示すエラー値を返します。 戻り値は、16 ビット Windows アプリケーションとの下位互換性のために HINSTANCE としてキャストされます。 ただし、これは真の HINSTANCE ではありません。 これは、INT_PTR にのみキャストでき、以下の 32 または次のエラー コードと比較します。

リターン コード 形容
0
オペレーティング システムのメモリまたはリソースが不足しています。
ERROR_FILE_NOT_FOUND
指定したファイルが見つかりませんでした。
ERROR_PATH_NOT_FOUND
指定したパスが見つかりませんでした。
ERROR_BAD_FORMAT
.exe ファイルが無効です (Win32 以外の .exe または .exe イメージのエラー)。
SE_ERR_ACCESSDENIED
オペレーティング システムが、指定したファイルへのアクセスを拒否しました。
SE_ERR_ASSOCINCOMPLETE
ファイル名の関連付けが不完全または無効です。
SE_ERR_DDEBUSY
他の DDE トランザクションが処理されていたため、DDE トランザクションを完了できませんでした。
SE_ERR_DDEFAIL
DDE トランザクションが失敗しました。
SE_ERR_DDETIMEOUT
要求がタイムアウトしたため、DDE トランザクションを完了できませんでした。
SE_ERR_DLLNOTFOUND
指定された DLL が見つかりませんでした。
SE_ERR_FNF
指定したファイルが見つかりませんでした。
SE_ERR_NOASSOC
指定されたファイル名拡張子に関連付けられているアプリケーションはありません。 印刷できないファイルを印刷しようとすると、このエラーも返されます。
SE_ERR_OOM
操作を完了するのに十分なメモリが不足していました。
SE_ERR_PNF
指定したパスが見つかりませんでした。
SE_ERR_SHARE
共有違反が発生しました。

拡張エラー情報 GetLastError を呼び出します。

備考

ShellExecute は、コンポーネント オブジェクト モデル (COM) を使用してアクティブ化されたシェル拡張機能 (データ ソース、コンテキスト メニュー ハンドラー、動詞の実装) に実行を委任できるため、ShellExecute を呼び出 前に COM を初期化する必要があります。 一部のシェル拡張機能では、COM シングル スレッド アパートメント (STA) 型が必要です。 その場合、COM は次のように初期化する必要があります。

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)

ShellExecute でこれらの種類のシェル拡張機能のいずれかが使用されず、これらのインスタンスで COM を初期化する必要がまったくない場合は、確かに存在します。 ただし、この関数を使用する前に、常に COM を初期化 することをお勧めします。

このメソッドを使用すると、フォルダーのショートカット メニューまたはレジストリに格納されているコマンドを実行できます。

フォルダーを開くには、次のいずれかの呼び出しを使用します。

ShellExecute(handle, NULL, <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);

又は

ShellExecute(handle, "open", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);

フォルダーを探索するには、次の呼び出しを使用します。

ShellExecute(handle, "explore", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);

ディレクトリに対してシェルの Find ユーティリティを起動するには、次の呼び出しを使用します。

ShellExecute(handle, "find", <fully_qualified_path_to_folder>, NULL, NULL, 0);

lpOperation NULL場合、この関数は lpFileで指定 ファイルを開きます。 lpOperation が "開く" または "探索" の場合、関数はフォルダーを開いたり探索したりしようとします。

ShellExecuteを呼び出した結果として起動されるアプリケーションに関する情報 取得するには、ShellExecuteExを使用します。

フォルダー オプションの別のプロセス 設定でフォルダーウィンドウを起動 は、ShellExecute影響します。 このオプションが無効になっている場合 (既定の設定)、ShellExecute 新しいエクスプローラー ウィンドウを起動するのではなく、開いているエクスプローラー ウィンドウを使用します。 エクスプローラー ウィンドウが開かなければ、ShellExecute 新しいウィンドウが起動します。
 

手記

shellapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ShellExecute を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー shellapi.h
ライブラリ Shell32.lib
DLL Shell32.dll (バージョン 3.51 以降)

関連項目

CoInitializeEx の

CreateProcessW の

IShellExecuteHook の

アプリケーションの起動 (ShellExecute、ShellExecuteEx、SHELLEXECUTEINFO)

ShellExecuteEx