Visual Basic Tips


OSの判別(API)


OSを調べるにはGetVersionEx関数を使用します。
サンプルではWin98を判別するのにCASE ELSEを使用して0以外としていますが、実際はOSVER.dwMinorVersion>0の時Win98となります。

Private Sub Form_Load()
  
Dim OSVER As OSVERSIONINFO

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

  
Select Case OSVER.dwPlatformId
    
Case VER_PLATFORM_WIN32_WINDOWS
      
Select Case OSVER.dwMinorVersion
        
Case 0
          MsgBox "Win95"
        
Case Else
          MsgBox "Win98"
      
End Select
    
Case VER_PLATFORM_WIN32_NT
      MsgBox "WinNT"
    
Case Else
      MsgBox "失敗"
  
End Select
End Sub

'----------------------------------------------------------
'
'----------------------------------------------------------
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


DownLoad vbtips077.lzh 2KB (VB6.0)