ShellExecuteの詳しい使い方
ShellExecuteは、外部アプリケーションを開いたり、URLリンクを開いたり、システムコマンドを実行するためのWindows API関数です。
ShellExecute関数のプロトタイプは以下の通りです:
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
説明:
- hwnd:親ウィンドウのハンドルを指定します。親ウィンドウを指定しない場合は、NULL を渡すことができます。
- lpOperation: “open”、”print”、”explore”など、指定した操作タイプを渡すことができます。操作タイプを指定しない場合は、NULLを渡すことができます。
- lpFile: 開くファイル名、URLリンク、またはシステムコマンドを指定します。
- lpParametersは、開くファイルに渡すパラメーターを指定するものであり、コマンドラインパラメーターなどが含まれます。パラメーターがない場合はNULLを渡すことができます。
- lpDirectory:ファイルを開くディレクトリを指定します。ディレクトリを指定しない場合は、NULLを渡すことができます。
- nShowCmdは、ファイルを開く際の表示方法を指定します。一般的な値は、SW_SHOWやSW_HIDEなどです。
戻り値:
- 関数の実行が成功すると、32より大きいHINSTANCEハンドルが返されます。関数の実行が失敗すると、返り値はエラーの原因に応じて異なります。
外部アプリケーションを開くためのShellExecuteの使用例:
#include <Windows.h>
#include <ShellAPI.h>
int main() {
ShellExecute(NULL, _T("open"), _T("C:\\Windows\\notepad.exe"), NULL, NULL, SW_SHOW);
return 0;
}
URLリンクを開くためのShellExecuteの使用例:
#include <Windows.h>
#include <ShellAPI.h>
int main() {
ShellExecute(NULL, _T("open"), _T("http://www.example.com"), NULL, NULL, SW_SHOW);
return 0;
}
ShellExecuteを使用してシステムコマンドを実行するサンプルコード:
#include <Windows.h>
#include <ShellAPI.h>
int main() {
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/c echo Hello World"), NULL, SW_SHOW);
return 0;
}
ShellExecute関数は非同期操作を行う関数であることに注意する必要があります。関数呼び出しはすぐに返り、アプリケーションの実行が完了するのを待機しません。アプリケーションの実行が完了してから他の操作を行いたい場合は、ShellExecuteEx関数を使用することができます。