Anyone know the best way to determine whether the user is running windows7?
I have methods for isWindowsXP and isWindowsVista:
Code:Function IsWindowsXP() As Boolean Dim osvi As OSVERSIONINFO Dim strCSDVersion As String Dim MajorVersion, MinorVersion, ServicePack, PlatformId osvi.dwOSVersionInfoSize = Len(osvi) If GetVersionEx(osvi) = 0 Then Exit Function End If strCSDVersion = StripTerminatorOS(osvi.szCSDVersion) MajorVersion = osvi.dwMajorVersion MinorVersion = osvi.dwMinorVersion ServicePack = strCSDVersion PlatformId = osvi.dwPlatformId Const dwMaskXP = &H2& Dim XP XP = (PlatformId And dwMaskXP) If MajorVersion = 5 And XP Then 'XP IsWindowsXP = True Else IsWindowsXP = False End If 'MsgBox "IsWindowsXP=" & IsWindowsXP & vbCrLf & " MAJOR VER=" & MajorVersion & vbCrLf & " XP = " & XP & vbCrLf & " PlatformId = " & PlatformId & vbCrLf & " MinOR VER=" & MinorVersion & vbCrLf & "ServicePack=" & ServicePack End FunctionCurrently, when running windows7, isWindowsXP returns false and isWindowsVista returns true. Ideally I need both to be false, and a new function isWindows7, which would return true.Code:Function IsWindowsVista() As Boolean Dim osvi As OSVERSIONINFO Dim strCSDVersion As String Dim MajorVersion, MinorVersion, ServicePack, PlatformId osvi.dwOSVersionInfoSize = Len(osvi) If GetVersionEx(osvi) = 0 Then Exit Function End If strCSDVersion = StripTerminator(osvi.szCSDVersion) MajorVersion = osvi.dwMajorVersion MinorVersion = osvi.dwMinorVersion ServicePack = strCSDVersion PlatformId = osvi.dwPlatformId Const dwMaskVista = &H2& 'MsgBox "dwMaskVista: " & dwMaskVista, vbOKOnly 'mk Dim Vista Vista = (PlatformId And dwMaskVista) If MajorVersion = 6 And Vista Then 'Vista IsWindowsVista = True Else IsWindowsVista = False End If End Function


Reply With Quote


