Detectar Windows Vista

Iniciado por aaronduran2, 13 Septiembre 2008, 02:58 AM

0 Miembros y 1 Visitante están viendo este tema.

aaronduran2

Hola. Quisiera saber si la API GetVersionEx también detecta Windows Vista y en ese caso, como sería.

Gracias de antemano.

seba123neo

#1
Hola, yo creo que no hay ningun problema ¿porque se te ocurre que no va a andar? aparte esta en la dll kernel32.dll una de las mas importantes de todas...podes detectar desde un windows 98 hasta un vista....
saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

krackwar

Cita de: aaronduran2 en 13 Septiembre 2008, 02:58 AM
Hola. Quisiera saber si la API GetVersionEx también detecta Windows Vista y en ese caso, como sería.

Gracias de antemano.
Yo ya e publicado por lo menos 7 veces un code para detectar el windows desde el registro busca un poco mas que me da flojera postearlo pero contestando tu pregunta ve que resultado te da la api en windows vista y va a ser el mismo resultado en todo los win vista.
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

seba123neo

#3
para despejar todas dudas, aca te pongo la tabla de resultados de la Api GetVersionEx...

Sistema operativo                             Mayor
_______________                             ______


Windows NT 3.51                                 3
Windows 95, 98, Me y NT 4.0                4
Windows 2000, XP y 2003                    5
Windows Vista/Longhorn                      6



Sistema operativo                            Menor
_______________                            _______

Windows NT 3.51                                 51
Windows 95                                         0
Windows 98                                        10
Windows Me                                        90
Windows NT 4.0                                   0
Windows 2000                                     0
Windows XP                                        1
Windows 2003                                     2
Windows Vista/Longhorn                       0

para usarla por ejemplo si te da la mayor un 4 y despues la menor un 90 es Windows Me, si la mayor te da un 5 y despues un 1, es un XP comun ...etc..

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Karcrack

#4
Esta es la función que yo me hice:
Código (vb) [Seleccionar]

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 Win2Version() As String
    'Declaramos las variables para esta funcion
    Dim OSInf As OSVERSIONINFO, iRet As Integer
    OSInf.dwOSVersionInfoSize = 148
    OSInf.szCSDVersion = Space$(128)
    'Obtenemos la informacion del Window$
    iRet = GetVersionExA(OSInf)
    'Si no se ha podido obtener correctamente devuelve 'Unknown'
    If iRet = 0 Then Win2Version = "Unk": Exit Function
    With OSInf
        Select Case .dwPlatformId
            Case 1
                Select Case .dwMinorVersion
                    Case 0
                        'En caso de que sea Win95
                        Win2Version = "95"
                    Case 10
                        'En caso de que sea Win98
                        Win2Version = "98"
                    Case 90
                        'En caso de que sea Win Millenium
                        Win2Version = "Mi"
                End Select
            Case 2
                Select Case .dwMajorVersion
                    Case 3 Or 4
                        'En caso de que sea NT (Aqui no he distinguido entre las dos versiones...)
                        Win2Version = "NT"
                    Case 5
                        Select Case .dwMinorVersion
                            Case 0
                                'En caso de que sea Win2000
                                Win2Version = "2000"
                            Case 1
                                'En caso de que sea XP
                                Win2Version = "XP"
                            Case 2
                                'En caso de que sea Win2003 (SERVER)
                                Win2Version = "2003"
                        End Select
                    Case 6
                        'En caso de que sea Win Vista
                        Win2Version = "Vista"
                End Select
            Case Else
                'En caso de que sea que sea desconocido...
                Win2Version = "Unk"
        End Select
    End With
End Function


Saludos :D

aaronduran2

OK, gracias. Había probado lo de Mayor = 6, pero no tengo un Vista donde comprobarlo.

Saludos.

krackwar

Cita de: aaronduran2 en 14 Septiembre 2008, 00:21 AM
OK, gracias. Había probado lo de Mayor = 6, pero no tengo un Vista donde comprobarlo.

Saludos.
No tenes ningun amigo con vista  :huh: :huh:
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

Karcrack

Cita de: aaronduran2 en 14 Septiembre 2008, 00:21 AM
OK, gracias. Había probado lo de Mayor = 6, pero no tengo un Vista donde comprobarlo.

Saludos.
Yo tengo un NoteBook con vista, probare el code en cuanto pueda ;), pero si no recuerdo mal la ultima vez que lo probé iba sin problema...

Karcrack

Confirmado, detecta el Windows Vista Home Premium :D