▼Windows Mobileプログラミングメモ▼
システム情報の取得

システム情報を表示するプログラムを作成する。



プロジェクトの設定
  1. ソリューションエクスプローラのプロジェクト名を右クリックし、ポップアップ「プロパティ」を選択。
  2. ツリー「構成プロパティ→リンカ→入力」を選択し、追加の依存ファイルに「aygshell.lib」を追加。
リソースの準備
  1. ソリューションエクスプローラのリソースファイルを右クリックし、ポップアップ「追加→リソース」を選択。
  2. Dialogをダブルクリックし、ダイアログ(IDD_DIALOG1)を生成。
  3. OKボタン(IDOK)とキャンセルボタン(IDCANCEL)を削除。
  4. ツールボックスの「Static Text(IDにIDC_STATIC_VERSION指定)」をドラッグ&ドロップでダイアログに配置。
  5. ツールボックスの「Static Text(IDにIDC_STATIC_OEM指定)」をドラッグ&ドロップでダイアログに配置。
  6. ツールボックスの「Static Text(IDにIDC_STATIC_PLATFORM指定)」をドラッグ&ドロップでダイアログに配置。

    ソースコードの作成
  1. ソリューションエクスプローラのソースファイルを右クリックし、ポップアップ「追加→クラス」を選択。
  2. main.cppという名前でファイル保存。
  3. ソースコードを以下のように編集。
    main.cpp
    #include <windows.h>
    #include <windowsx.h>
    #include <aygshell.h>
    #include "resource.h"
    
    //関数の宣言
    BOOL DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
    
    //メイン
    int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
        LPWSTR lpCmdLine,int nShowCmd) {
        //ダイアログの生成
        DialogBoxW(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
        return 0;
    }
    
    //ダイアログのイベント処理
    BOOL DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
        TCHAR text[256]={0};
    
        switch(uMsg) {
        //初期化
        case WM_INITDIALOG:{
            //フルスクリーン
            SHINITDLGINFO sidi={
                SHIDIM_FLAGS,hDlg,
                SHIDIF_DONEBUTTON|SHIDIF_SIZEDLGFULLSCREEN|SHIDIF_EMPTYMENU};
            SHInitDialog(&sidi);
    
            //バージョン情報の取得
            OSVERSIONINFO version={0};
            version.dwOSVersionInfoSize=sizeof(version);
            if (GetVersionEx(&version)==TRUE) {
                StringCchPrintf(text,256,L"バージョン:%d.%d (%d)",
                    version.dwMajorVersion,
                    version.dwMinorVersion,
                    version.dwBuildNumber);
                Static_SetText(GetDlgItem(hDlg,IDC_STATIC_VERSION),text);
            }
    
            //OEM情報の取得
            TCHAR oemInfo[256]={0};
            if (SystemParametersInfo(SPI_GETOEMINFO,256,oemInfo,0)==TRUE) {
                StringCchPrintf(text,256,L"OEM情報:%s",oemInfo);
                Static_SetText(GetDlgItem(hDlg,IDC_STATIC_OEM),text);
            }
    
            //プラットフォーム
            TCHAR platformInfo[256]={0};
            if (SystemParametersInfo(SPI_GETPLATFORMTYPE,256,platformInfo,0)==TRUE) {
                StringCchPrintf(text,256,L"プラットフォーム:%s",platformInfo);
                Static_SetText(GetDlgItem(hDlg,IDC_STATIC_PLATFORM),text);
            }
            }
            break;
        //コマンド
        case WM_COMMAND:
            switch(LOWORD(wParam)) {
            //OKボタン
            case IDOK:
                EndDialog(hDlg,LOWORD(wParam));
                break;
            }
            break;
        //クローズ
        case WM_CLOSE:
            DestroyWindow(hDlg);
            break;
        }
        return FALSE;
    }
    



−戻る−