【API Function】


[OSのバージョン情報取得]
 OSのバージョン情報を取得には、GetVersionEx関数を使用します。
この関数は、引数にOSVERSIONINFO構造体を持ち、OSのバージョン情報などは、 この中に格納されます。この関数が失敗すると0が返り、成功すると0以外の 整数が返ります。


(GlobalMemoryStatus 関数の使用方法)

このサンプルでは、CommandButtonをクリックすることでメッセージボックスに バージョン情報が表示されます。
フォームのGeneralセクションに次の宣言コードを追加して下さい。

'構造体の定義
Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long 'この構造体のサイズ
    dwMajorVersion As Long      'メジャーバージョン
    dwMinorVersion As Long      'マイナーバージョン
    dwBuildNumber As Long       'ビルド番号
    dwPlatformId As Long        'OS名の定義番号
    szCSDVersion As String * 128'OSに関する説明
End Type
'APIの宣言
Private Declare Function GetVersionEx Lib "kernel32" Alias _
    "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) _
    As Long

    'OS名の定義
    Private Const VER_PLATFORM_WIN32s = 0&       '未定義
    Private Const VER_PLATFORM_WIN32_WINDOWS = 1&'WINDOWS95
    Private Const VER_PLATFORM_WIN32_NT = 2&     'WINDOWSNT

次に、フォームにCommandButtonを配置し、次のコードを追加します。

Private Sub Command1_Click()
    Dim OsVerInfo As OSVERSIONINFO
    Dim msg As String
    Dim OSName As String
    Dim MaVer As Long
    Dim MiVer As Long
    Dim BNum As Long
    '関数を呼び出す前に引数の構造体のサイズを格納しなくてはいけない
    OsVerInfo.dwOSVersionInfoSize = Len(OsVerInfo)
    If GetVersionEx(OsVerInfo) = 0& Then Exit Sub
    MaVer = OsVerInfo.dwMajorVersion
    MiVer = OsVerInfo.dwMinorVersion

    Select Case OsVerInfo.dwPlatformId
        Case 0&
            OSName = "未定義"
        Case 1&
            'Windows 95 - 上位2バイトがメジャーバージョン(上位1バイト)
            'とマイナーバージョン (下位1バイト)
            '下位2バイトにビルド番号(1000 > の時 Windows 95 OSR 2 以降)
            BNum = OsVerInfo.dwBuildNumber Mod (2& ^ 16&)
            OSName = "WINDOWS95"
        Case 2&
            'Windows NT - ビルド番号
            BNum = OsVerInfo.dwBuildNumber
            OSName = "WINDOWSNT"
    End Select
    msg = "OS名 : " & OSName & Chr(10) & _
                  "メジャーバージョン : " & MaVer & Chr(10) & _
                  "マイナーバージョン : " & MiVer & Chr(10) & _
                  "ビルドナンバー : " & BNum
    MsgBox msg, vbInformation + vbOKOnly, "OSバージョン情報"
End Sub

このようにバージョン情報は簡単に得られるのですが、関数を呼び出す前に 引数の構造体のサイズを格納することを忘れないようにして下さい。これを せずに呼び出すと、関数は失敗してしまいます。

(ビルド番号のデータの格納のされ方)
全体は、4バイトのLong型変数で、
Windows 95 の場合、下位2バイトがビルド番号になっています。
下位2バイトは、
4バイトの値を2の16乗で割った余り、もしくは2の16乗との論理積(AND) の計算から得られます。
このようにビット演算を使っていて複雑な ので注意して下さい。


API Functionインデックス トップ


Copyright(C)1999 Tomoya. All rights reserved.