ShellExecuteA 関数 (shellapi.h)
指定したファイルに対して操作を実行します。
構文
HINSTANCE ShellExecuteA(
[in, optional] HWND hwnd,
[in, optional] LPCSTR lpOperation,
[in] LPCSTR lpFile,
[in, optional] LPCSTR lpParameters,
[in, optional] LPCSTR lpDirectory,
[in] INT nShowCmd
);
パラメーター
[in, optional] hwnd
型: HWND
UI またはエラー メッセージの表示に使用される親ウィンドウへのハンドル。 操作がウィンドウに関連付けられていない場合、この値は NULL
[in, optional] lpOperation
型: LPCTSTR
null-terminated 文字列へのポインター 。この場合は、実行するアクションを指定する 動詞と呼ばれます。 使用可能な動詞のセットは、特定のファイルまたはフォルダーによって異なります。 一般に、オブジェクトのショートカット メニューから使用できるアクションは、動詞として使用できます。 次の動詞が一般的に使用されます。
編集
エディターを起動し、編集用にドキュメントを開きます。 lpFile
探る
lpFileで指定されたフォルダー
見付ける
lpDirectoryで指定されたディレクトリから検索
開ける
lpFile パラメーターで指定された項目を開きます。 アイテムには、ファイルまたはフォルダーを指定できます。
プリント
lpFileで指定
runas
管理者としてアプリケーションを起動します。 ユーザー アカウント制御 (UAC) は、アプリケーションを管理者特権で実行するか、アプリケーションの実行に使用する管理者アカウントの資格情報を入力する同意をユーザーに求めます。
ヌル
使用可能な場合は、既定の動詞が使用されます。 そうでない場合は、"open" 動詞が使用されます。 どちらの動詞も使用できない場合、システムはレジストリに記載されている最初の動詞を使用します。
[in] lpFile
型: LPCTSTR
指定した動詞を実行するファイルまたはオブジェクトを指定する、null終了文字列へのポインター。 シェル名前空間オブジェクトを指定するには、完全修飾解析名を渡します。 すべてのオブジェクトですべての動詞がサポートされているわけではないことに注意してください。 たとえば、すべてのドキュメントの種類で "print" 動詞がサポートされているわけではありません。
[in, optional] lpParameters
型: LPCTSTR
lpFile
[in, optional] lpDirectory
型: LPCTSTR
アクションの既定の (作業) ディレクトリを指定する、null終了文字列へのポインター。 この値が NULL
[in] nShowCmd
型: INT
アプリケーションを開くときに表示する方法を指定するフラグ。 lpFile
戻り値
型: HINSTANCE
関数が成功すると、32 より大きい値が返されます。 関数が失敗した場合は、エラーの原因を示すエラー値を返します。 戻り値は、16 ビット Windows アプリケーションとの下位互換性のために HINSTANCE としてキャストされます。 ただし、これは真の HINSTANCE ではありません。 これは、INT_PTR にのみキャストでき、以下の 32 または次のエラー コードと比較します。
リターン コード | 形容 |
---|---|
|
オペレーティング システムのメモリまたはリソースが不足しています。 |
|
指定したファイルが見つかりませんでした。 |
|
指定したパスが見つかりませんでした。 |
|
.exe ファイルが無効です (Win32 以外の .exe または .exe イメージのエラー)。 |
|
オペレーティング システムが、指定したファイルへのアクセスを拒否しました。 |
|
ファイル名の関連付けが不完全または無効です。 |
|
他の DDE トランザクションが処理されていたため、DDE トランザクションを完了できませんでした。 |
|
DDE トランザクションが失敗しました。 |
|
要求がタイムアウトしたため、DDE トランザクションを完了できませんでした。 |
|
指定された DLL が見つかりませんでした。 |
|
指定したファイルが見つかりませんでした。 |
|
指定されたファイル名拡張子に関連付けられているアプリケーションはありません。 印刷できないファイルを印刷しようとすると、このエラーも返されます。 |
|
操作を完了するのに十分なメモリが不足していました。 |
|
指定したパスが見つかりませんでした。 |
|
共有違反が発生しました。 |
拡張エラー情報 GetLastError を呼び出します。
備考
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
ShellExecuteを呼び出した結果として起動されるアプリケーションに関する情報
手記
shellapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ShellExecute を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | shellapi.h |
ライブラリ | Shell32.lib |
DLL | Shell32.dll (バージョン 3.51 以降) |
関連項目
CoInitializeEx の
CreateProcessA の
IShellExecuteHook の