Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: aaronduran2 en 13 Septiembre 2008, 02:58 AM

Título: Detectar Windows Vista
Publicado por: 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.
Título: Re: Detectar Windows Vista
Publicado por: seba123neo en 13 Septiembre 2008, 05:33 AM
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.
Título: Re: Detectar Windows Vista
Publicado por: krackwar en 13 Septiembre 2008, 06:06 AM
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.
Título: Re: Detectar Windows Vista
Publicado por: seba123neo en 13 Septiembre 2008, 06:29 AM
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.
Título: Re: Detectar Windows Vista
Publicado por: Karcrack en 13 Septiembre 2008, 11:51 AM
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
Título: Re: Detectar Windows Vista
Publicado por: 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.
Título: Re: Detectar Windows Vista
Publicado por: krackwar en 14 Septiembre 2008, 04:57 AM
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:
Título: Re: Detectar Windows Vista
Publicado por: Karcrack en 14 Septiembre 2008, 19:26 PM
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...
Título: Re: Detectar Windows Vista
Publicado por: Karcrack en 19 Septiembre 2008, 18:48 PM
Confirmado, detecta el Windows Vista Home Premium :D