パラメータ
hwnd
親ウィンドウのハンドルを指定する。このウィンドウは、アプリケーションが生成したすべてのメッセージボックスを受け取る。
たとえば、アプリケーションはエラーが発生したときに、メッセージボックスを使ってそのことを伝えることがある。
lpVerb
実行するべき操作を保持している、NULL で終わる文字列へのポインタを指定する。
利用可能な操作の種類は、ファイルまたはファイルによって異なる。
これらの操作には、コンテキストメニューやレジストリで列挙されるコマンドも含まれる。通常は、次の操作が有効である。
操作
|
説明
|
edit |
エディタを開く。lpFile で指定したファイルが文書ファイルではない場合、この関数は失敗する。 |
explore |
lpFile
パラメータで指定したフォルダを選択して、エクスプローラを起動する。 |
open
|
lpFile パラメータで指定したファイルを開く。lpFile パラメータで、文書ファイルまたは実行可能ファイルを指定できる。
1
つのフォルダを指定することもできる。
|
print
|
lpFile パラメータで指定したファイルを印刷する。
lpFile パラメータで文書以外のファイルを指定すると、この関数は失敗する。
|
properties |
ファイルまたはフォルダのプロパティを表示する。 |
このパラメータで NULL を指定した場合、次のことが発生する。
・Windows 2000 より前のシステムでは、利用可能な場合、open(開く)操作が既定で適用される。
利用不可能な場合、ファイルなどに応じた既定の操作が適用される。
・Windows 2000
以降のシステムでは、利用可能な場合、open(開く)操作が既定で適用される。利用不可能な場合、ファイルなどに
応じた既定の操作が適用される。どちらの操作も利用可能ではない場合、システムはレジストリ内に列挙されている最初の操作を適用す
る。
lpFile
操作対象のファイル名またはフォルダ名を保持している、NULL で終わる文字列へのポインタを指定する。
lpParameters
lpFile パラメータで実行可能ファイルを指定した場合は、アプリケーションに渡すべきパラメータを保持している、NULL
で終わる文字列への
ポインタを指定する。この文字列の構文は、lpVerb パラメータで指定した操作によって異なる。
lpFile パラメータで文書ファイルを指定した場合は、NULL を指定するべきである。
lpDirectory
既定のディレクトリ名を保持している、NULL で終わる文字列へのポインタを指定する。
nShowCmd
アプリケーションの表示方法を指示するフラグを指定する。lpFile パラメータで 1
つの文書ファイルを指定した場合、このフラグは単純に、そ
のファイルに関連付けられているアプリケーションに渡される。フラグの扱い方は、そのアプリケーションに依存する。
次の値のいずれかを指定する。
値
|
意味
|
SW_HIDE |
ウィンドウを非表示にし、他のウィンドウをアクティブにする。 |
SW_MAXIMIZE |
指定されたウィンドウを最大化する。 |
SW_MINIMIZE
|
指定されたウィンドウを最小化し、Z
オーダーが次の(つまり、奥行き方向で、指定されたウィンドウのすぐ奥にある)トップレベルウィンドウをアクティブにする。
|
SW_RESTORE
|
ウィンドウをアクティブにし、表示する。指定されたウィンドウが最小化または最大化されていた場合、元の
位置とサイズに戻ります。最小化されたウィンドウを元のサイズへ戻す場合、アプリケーションはこのフラグを
指定する。
|
SW_SHOW |
ウィンドウをアクティブにして、現在の位置とサイズで表示する。 |
SW_SHOWDEFAULT
|
アプリケーション(lpFile パラメータで指定した実行可能ファイル、または文書ファイルに関連付けられている
実行可能ファイル)を起動したプログラム(開発者が作成した、ShellExecute を使う実行可能ファイル)が
CreateProcess 関数に渡す STARTUPINFO 構造体の wShowWindow メンバで指定された SW_ フラグに
基づいて、表示状態を設定する。アプリケーションは、このフラグを指定して ShowWindow 関数を呼び出
し、自らのメインウィンドウの初期の表示状態を設定する。
|
SW_SHOWMAXIMIZED |
ウィンドウをアクティブにして、最大化する。 |
SW_SHOWMINIMIZED |
ウィンドウをアクティブにして、最小化する。 |
SW_SHOWMINNOACTIVE |
ウィンドウを最小化する。アクティブなウィンドウは、アクティブな状態を維持する。 |
SW_SHOWNA |
ウィンドウを現在の状態で表示する。アクティブなウィンドウはアクティブな状態を維持する。 |
SW_SHOWNOACTIVATE |
ウィンドウを直前の位置とサイズで表示する。アクティブなウィンドウはアクティブな状態を維持する。 |
SW_SHOWNORMAL
|
ウィンドウをアクティブにして、表示する。ウィンドウが最小化または最大化されているときは、位置とサイズを
元へ戻す。アプリケーションは、ウィンドウを最初に表示するときにこのフラグを指定する。
|
戻り値
関数が成功すると、32 より大きい値が返る。関数が失敗すると、32
以下の値が返る。次の表は、これらのエラー値を示している。
これらの戻り値は、16 ビット版の Windows アプリケーションとの下位互換性を考慮して、HINSTANCE へキャストされている。
ただし、通常の HINSTANCE と同じものではない。返された HINSTANCE に対して実行できるのは、整数へのキャスト、および数値 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 |
共有違反が発生した。 |
解説
この関数を使うと、フォルダのコンテキストメニュー内またはレジストリに格納されている任意のコマンドを実行できる。
フォルダを開くには、次のコードを記述する。
ShellExecute(handle, NULL,
path_to_folder, NULL, NULL, SW_SHOWNORMAL)
または
ShellExecute(handle, "open",
path_to_folder, NULL, NULL, SW_SHOWNORMAL)
フォルダを選択してエクスプローラを起動するには、次のコードを記述する。
ShellExecute(handle, "explore",
path_to_folder, NULL, NULL, SW_SHOWNORMAL)
特定のディレクトリを検索するには、次のコードを記述する。
ShellExecute(handle, "find",
path_to_folder, NULL, NULL, 0)
lpOperation パラメータで NULL を指定した場合、この関数は、lpFile
パラメータで指定されたファイルを開こうとする。lpOperation で
"open" または "explore" を指定し、lpFile
パラメータでフォルダを指定した場合、この関数はそのフォルダを開くか、エクスプローラで表示し
ようとする。
ShellExecute
を呼び出した結果起動されたアプリケーションに関する情報を取得するには、ShellExecuteEx関数を使う。
|