На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
Модераторы: SCINER, B.V.
  
    > Как определить версию Windows , nt\xp or win98\me or win95
      ExpandedWrap disabled
        Private Const VER_PLATFORM_WIN32s = 0, VER_PLATFORM_WIN32_WINDOWS = 1, VER_PLATFORM_WIN32_NT = 2
        Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As TOSVersionInfo) As Long
        Private Type TOSVersionInfo
           dwOSVersionInfoSize As Long
           dwMajorVersion As Long
           dwMinorVersion As Long
           dwBuildNumber As Long
           dwPlatformId As Long
           szCSDVersion As String * 128
        End Type
         
        Public Function IsWindowsNT() As Boolean
            Dim osvi As TOSVersionInfo
            osvi.dwOSVersionInfoSize = Len(osvi)
            GetVersionEx osvi
            IsWindowsNT = (osvi.dwPlatformId = VER_PLATFORM_WIN32_NT)
        End Function
         
        Public Function IsWindows98() As Boolean
            Dim osvi As TOSVersionInfo
            osvi.dwOSVersionInfoSize = Len(osvi)
            GetVersionEx osvi
            IsWindows98 = (osvi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS And osvi.dwMinorVersion >= 10 And osvi.dwMajorVersion = 4)
        End Function


      IsWindowsNT ' True, если установлена NT
      IsWindows98 ' True, если установлена Windows98/ME

      Иначе 95
      Сообщение отредактировано: Vasya2000 -
        Следующий код определяет Win до таких тонкостей : NT3, NT3.1, NT3.5, NT3.51, NT 4, Win95, Win95OSR2, Win2000, WinXP, Win98, Win98SE (ed: Win2k3, WinVista).

        ExpandedWrap disabled
          Option Explicit
          Public Const VER_PLATFORM_WIN32s = 0
          Public Const VER_PLATFORM_WIN32_WINDOWS = 1
          Public Const VER_PLATFORM_WIN32_NT = 2
          Public Type OSVERSIONINFO
            OSVSize         As Long         'size, in bytes, of this data structure
            dwVerMajor      As Long         'ie NT 3.51, dwVerMajor = 3; NT 4.0, dwVerMajor = 4.
            dwVerMinor      As Long         'ie NT 3.51, dwVerMinor = 51; NT 4.0, dwVerMinor= 0.
            dwBuildNumber   As Long         'NT: build number of the OS
                                            'Win9x: build number of the OS in low-order word.
                                            '       High-order word contains major & minor ver nos.
            PlatformID      As Long         'Identifies the operating system platform.
            szCSDVersion    As String * 128 'NT: string, such as "Service Pack 3"
                                            'Win9x: 'arbitrary additional information'
          End Type
          Public Declare Function GetVersionEx Lib "kernel32" _
             Alias "GetVersionExA" _
            (lpVersionInformation As OSVERSIONINFO) As Long
           
          Public Function GetWinVer() As String
            #If Win32 Then
             Dim OSV As OSVERSIONINFO
             OSV.OSVSize = Len(OSV)
             If GetVersionEx(OSV) = 1 Then
                Select Case OSV.PlatformID
                   Case VER_PLATFORM_WIN32s: GetWinVer = "32s"
                   Case VER_PLATFORM_WIN32_NT:
                      Select Case OSV.dwVerMajor
                         Case 3:
                            Select Case OSV.dwVerMinor
                               Case 0:  GetWinVer = "NT3"
                               Case 1:  GetWinVer = "NT3.1"
                               Case 5:  GetWinVer = "NT3.5"
                               Case 51: GetWinVer = "NT3.51"
                            End Select
                         Case 4: GetWinVer = "NT 4"
                         Case 5:
                            Select Case OSV.dwVerMinor
                               Case 0:  GetWinVer = "Win2000"
                               Case 1:  GetWinVer = "WinXP"
                               Case 2:  GetWinVer = "Win2k3" ' Windows Server 2003
                            End Select
                         Case 6: GetWinVer = "Vista" 'Vista
                      End Select
                   Case VER_PLATFORM_WIN32_WINDOWS:
                      Select Case OSV.dwVerMinor
                         Case 0:
                                  If OSV.dwBuildNumber = 950 Then
                                      GetWinVer = "Windows 95"
                                  Else
                                      ' 1111 for OSR 2. For OSR 2.5 = ???
                                      GetWinVer = "Windows 95 OSR2"
                                  End If
                         Case 90:   GetWinVer = "ME"
                         Case Else:
                                  If OSV.dwBuildNumber = 1998 Then
                                      GetWinVer = "Windows 98"
                                  Else
                                      GetWinVer = "Windows 98 Release 2"
                                  End If
                      End Select
                End Select
             End If
            #Else
               GetWinVer = "3x"
            #End If
          End Function


        Вот по этой ссылке лежит код, который определяет винду до таких тонкостей как Home Edition, Server, Workstation, Professional и т.п -
        http://vbnet.mvps.org/index.html?code/syst...etversionex.htm
        Сообщение отредактировано: B.V. -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0168 ]   [ 16 queries used ]   [ Generated: 10.05.24, 15:44 GMT ]