開発環境 Microsoft Visual C++ 2010 Express (SP1)
実行環境 Microsoft Windows XP Home Edition (SP3)
プロジェクトの種類 Win32 プロジェクト
プロジェクト名 ShellExec
アプリケーションの種類 Windows アプリケーション
追加のオプション 空のプロジェクト
文字セット Unicode

ShellExec.cpp
// ShellExec 指定されたファイルに対し、指定された操作を実行
 
#include <Windows.h>
#include "resource.h"
 
// 関数プロトタイプ宣言
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
void OnOK(HWND hDlg);
 
//==============================================================================
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
{
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);
	return 0;
}
 
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	INT_PTR result = TRUE;	// メッセージを処理した
 
	switch (uMsg) {
	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDOK:
			OnOK(hDlg);
			break;
		case IDCANCEL:
			EndDialog(hDlg, IDCANCEL);
			break;
		}
		break;
	case WM_INITDIALOG:
		result = TRUE;	// SetFocusでフォーカスを設定した場合はFALSE
		break;
	case WM_CLOSE:
		EndDialog(hDlg, 0);
		break;
	default:
		result = FALSE;	// メッセージを処理しなかった
	}
	return result;
}
 
void OnOK(HWND hDlg)
{
	TCHAR cmd[256];
 
	GetDlgItemText(hDlg, IDC_EDIT, cmd, _countof(cmd));
	ShellExecute(hDlg, NULL, cmd, NULL, NULL, SW_SHOWNORMAL);
}
 

resource.h
#define IDD_DIALOG	100
 
#define IDC_STATIC	-1
#define IDC_EDIT	1000
 

ShellExec.rc
// resource script
 
#include <Windows.h>
#include "resource.h"
 
IDD_DIALOG DIALOGEX 100, 100, 320, 100
STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX
EXSTYLE WS_EX_APPWINDOW
CAPTION "ShellExec"
FONT 9, "MS Pゴシック"
BEGIN
	LTEXT		"Command(&C):",IDC_STATIC,10,10,50,12
	EDITTEXT	IDC_EDIT,60,10,200,12,ES_AUTOHSCROLL
	DEFPUSHBUTTON	"OK",IDOK,260,75,50,15
END
 
最終更新:2013年02月25日 18:23