OSを判別する方法

◆概要

 このページは、Visual Basic 6.0において、OSの判別方法を掲載しています。


 OSを判別するには、Win32API の GetVersionEx 関数を使用してオペレーションシステムの Service Pack 情報を取得して、オペレーションシステムを判別します。まず、GetVersionEx 関数の定義と、OSVERSIONINFOEX 構造体の宣言を行います。実装コードは以下のとおりです。

標準モジュール

Option Explicit

Public Declare Function GetVersionEx Lib "kernel32" _
    Alias "GetVersionExA" ( _
        lpVersionInformation As OSVERSIONINFO _
        ) As Long


Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type


Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VER_PLATFORM_WIN32_NT = 2

次に、標準モジュール で定義の宣言を行った GetVersionEx 関数を呼び出し、オペレーションシステムを判別する処理を追加します。

フォームモジュール

Option Explicit

Private Sub Command1_Click()
    Dim OSVER As OSVERSIONINFO
    Dim strVersion As String


    OSVER.dwOSVersionInfoSize = Len(OSVER)
    Call GetVersionEx(OSVER)


    Select Case OSVER.dwPlatformId
        Case VER_PLATFORM_WIN32_WINDOWS
        Select Case OSVER.dwMinorVersion
            Case 0
                strVersion = "Windows 95"
            Case Else
                strVersion = "Windows 98"
        End Select
    
        Case VER_PLATFORM_WIN32_NT
        Select Case OSVER.dwMinorVersion
            Case 0
                strVersion = "Windows 2000"
            Case 1
                strVersion = "Windows XP"
            Case 2
                strVersion = "Windows Server 2003"
        End Select
    Case Else
        strVersion = "不明"
    End Select

    MsgBox strVersion, vbOKOnly, "Operating System"

End Sub

「Call GetVersionEx(OSVER)」で現在動作しているオペレーションシステムのバージョン情報を取得します。「Select Case OSVER.dwPlatformId ... End Select」で、取得したオペレーションシステムの情報からオペレーションシステムの種類を確認します。そして、「MsgBox strVersion, vbOKOnly, "Operating System"」で取得したオペレーションシステムの種類をメッセージボックスで表示します。



▼ページトップへ