Det har inte kommit någon ny information på MSDN ännu om vilka värden man får från GetVersionEx när man använder Windows Me. Finns det någon vänlig själ här som använder Windows Me och kan göra ett litet test åt mig för att se vilka värden man får på parametrarna dwMajorVersion dwPlatformId, dwMajorVersion och dwMinorVersion? Även värdena från Whistler vore intressanta att få. dwMajorVersion = 4 I MSDN står det: "For Windows 98, dwMinorVersion is greater than zero." Då kan man alltså inte göra som jag gjorde i ovanstående kod ("ElseIf .dwMinorVersion > 0 Then") om man vill särskilja på Windows 98 och Windows Me. Om dwMinorVersion=10 så är det Windows 98 och är dwMinorVersion=90 är det Windows Me. Detta borde väl stämma? Helt rätt.GetVersionEx och Windows Me
Här är lite kod till er hjälp:
Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Function getVersion() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
With osinfo
Select Case .dwPlatformId
Case 1
If .dwMinorVersion = 0 Then
getVersion = "Windows 95"
ElseIf .dwMinorVersion > 0 Then
getVersion = "Windows 98"
End If
Case 2
If .dwMajorVersion = 3 Then
getVersion = "Windows NT 3.51"
ElseIf .dwMajorVersion = 4 Then
getVersion = "Windows NT 4.0"
ElseIf .dwMajorVersion = 5 Then
getVersion = "Windows 2000"
End If
Case Else
getVersion = "Failed"
End Select
End With
End FunctionSv: GetVersionEx och Windows Me
dwMinorVersion = 90
dwBuildNumber = 3000
dwPlatformId = 1 (VER_PLATFORM_WIN32_WINDOWS)
MSSv: GetVersionEx och Windows Me
Sv: GetVersionEx och Windows Me
Ska försöka gräva upp Whistlers versionsnummer också, även om det kanske är lite tidigt att lita på det redan.
MS