開発環境 |
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