Newsgroup: it.comp.lang.visual-basic
Titolo: Majorversion di XP

Chiedo un piccolo aiuto...
Ho la macchina XP di test fuori servizio.
Qualcuno che ha XP può farmi girare questa cosina (progettino vuoto, un
commandbutton, copiaincolla, righe riattaccate e esegue), e inviarmi la
stringa che appare in
finestra immediata...
L'avevo testata fino a W2k, e adesso sto mettendo mano ad una nuova versione
di un prodotto, e mi sono accorto di una dimenticanza.
Ciao e grazie
Alberto
Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation
As OSVERSIONINFO) As Integer
Public Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type
Public 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 0
                getVersion = "Windows 32"
            Case 1
                If .dwMinorVersion = 0 Then
                    getVersion = "Windows 95"
                ElseIf .dwMinorVersion = 10 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"
                ElseIf .dwMajorVersion = 6 Then
                    getVersion = "Windows XP"
                End If
            Case Else
                getVersion = "Non Identificato"
        End Select
    End With
    getVersion = getVersion & " V." & CStr(osinfo.dwMajorVersion) & "." &
CStr(osinfo.dwMinorVersion) & "." & CStr(osinfo.dwBuildNumber) & " " &
Trim(Replace$(osinfo.szCSDVersion, Chr(0), vbNullString))
End Function
Private Sub Command1_Click()
    debug.print getVersion()
End Sub


Ho XP Pro, senza SP1
Mi espone:
Windows 2000 V.5.1.2600

Non ho XP ma ho provato lo stesso e mi restituisce:
"Windows 2000 V.5.0.2195 Service Pack 2"
Andrea.

 Windows 2000 V.5.1.2600
OK. Quindi usando la function qui sotto dovrebbe andare.
Ciao e grazie
Alberto
Public 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 0
                getVersion = "Windows 32"
            Case 1
                If .dwMinorVersion = 0 Then
                    getVersion = "Windows 95"
                ElseIf .dwMinorVersion = 10 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
                    If .dwMinorVersion = 0 Then
                        getVersion = "Windows 2000"
                    ElseIf .dwMinorVersion = 1 Then


 OK. Quindi usando la function qui sotto dovrebbe andare.
Proverò

 OK. Quindi usando la function qui sotto dovrebbe andare.
Con la nuova funzione:
Windows XP V.5.1.2600
Bingo! ;-)

http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b189249
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/bas
e/osversioninfo_str.asp

 
http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b189249
<quote>
                    Select Case .dwMinorVersion
                        Case 0
                            getVersion = "Windows 95"
                        Case 10
                            getVersion = "Windows 98"
                        Case 90
                            getVersion = "Windows Mellinnium"
                    End Select
</quote>
mellinium? :-PP

 mellinium? :-PP
beh... si chiama Windows Me, no?
:-)
--
Salutoni
Sergio

 mellinium? :-PP
Ora chi può dire che non bevono?

 Ora chi può dire che non bevono?
E se si iniettassero alcool diluito endovena... ?
Un Pa-HIC-perino che non ci prove-HIC-rebbe mai.