WinExec、ShellExecute用法詳解
WinExecとShellExecuteは、外部プログラムを実行したり、 ファイルを開いたりするWindowsオペレーティングシステムの2つの関数です。以下はそれらの使用方法の詳細です。
- WinExec関数
- 関数のプロトタイプ: UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow)
- 外部プログラムを実行します。
- パラメーター:
- exec() に渡される、null 終端文字列で表される外部プログラムのコマンドライン引数。
- uCmdShow:プログラム ウィンドウの表示方法を表す数値。
- 返り値:関数が正常に実行された場合は32より大きな値を返し、プログラムの実行が成功したことを示す。関数が正常に実行されなかった場合は、エラーコードを返す。
- サンプルコード:
#include <windows.h>
int main()
{
WinExec("notepad.exe", SW_SHOW);
return 0;
}
- シェル実行関数
- 関数プロトタイプ:HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd)
- 機能:ファイルを開いたり、外部プログラムを実行する。
- パラメータ:
- hwnd:親ウィンドウのハンドルを指定します。
- lpOperation: 実行する操作を指定します (“open”、”print” など)。NULL にできます。
- lpFile: null終端文字列。ファイル名または実行外部プログラムを表します。
- lpParameters:外部プログラムに渡されるコマンドラインパラメータを表す、NULLで終了する文字列です。
- lpDirectory: 実行時に外部プログラム用の作業ディレクトリを示すヌル終了文字列。NULLも可能。
- nShowCmd:プログラムウィンドウの表示方法を表す整数値
- 返り値:関数が正常終了した場合は 32 より大きい値が返され、操作が成功したことを示します。関数が正常終了しなかった場合は、エラーコードが返されます。
- サンプルコード:
#include <windows.h>
int main()
{
ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOW);
return 0;
}
外部コマンドを実行したりファイルを開いたりするには、WinExec 関数または ShellExecute 関数を使用します。どちらを使用するかは、具体的な要件によって異なります。外部コマンドを単純に実行するだけであれば、WinExec 関数の使用を推奨します。親ウィンドウの指定やコマンドライン引数の受け渡しなど、より多くの操作オプションが必要な場合は、ShellExecute 関数を使用します。