Foro de elhacker.net

Programación => 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
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
  1. Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer
  2. Private Type OSVERSIONINFO
  3.    dwOSVersionInfoSize As Long
  4.    dwMajorVersion As Long
  5.    dwMinorVersion As Long
  6.    dwBuildNumber As Long
  7.    dwPlatformId As Long
  8.    szCSDVersion As String * 128
  9. End Type
  10.  
  11. Private Function Win2Version() As String
  12.    'Declaramos las variables para esta funcion
  13.    Dim OSInf As OSVERSIONINFO, iRet As Integer
  14.    OSInf.dwOSVersionInfoSize = 148
  15.    OSInf.szCSDVersion = Space$(128)
  16.    'Obtenemos la informacion del Window$
  17.    iRet = GetVersionExA(OSInf)
  18.    'Si no se ha podido obtener correctamente devuelve 'Unknown'
  19.    If iRet = 0 Then Win2Version = "Unk": Exit Function
  20.    With OSInf
  21.        Select Case .dwPlatformId
  22.            Case 1
  23.                Select Case .dwMinorVersion
  24.                    Case 0
  25.                        'En caso de que sea Win95
  26.                        Win2Version = "95"
  27.                    Case 10
  28.                        'En caso de que sea Win98
  29.                        Win2Version = "98"
  30.                    Case 90
  31.                        'En caso de que sea Win Millenium
  32.                        Win2Version = "Mi"
  33.                End Select
  34.            Case 2
  35.                Select Case .dwMajorVersion
  36.                    Case 3 Or 4
  37.                        'En caso de que sea NT (Aqui no he distinguido entre las dos versiones...)
  38.                        Win2Version = "NT"
  39.                    Case 5
  40.                        Select Case .dwMinorVersion
  41.                            Case 0
  42.                                'En caso de que sea Win2000
  43.                                Win2Version = "2000"
  44.                            Case 1
  45.                                'En caso de que sea XP
  46.                                Win2Version = "XP"
  47.                            Case 2
  48.                                'En caso de que sea Win2003 (SERVER)
  49.                                Win2Version = "2003"
  50.                        End Select
  51.                    Case 6
  52.                        'En caso de que sea Win Vista
  53.                        Win2Version = "Vista"
  54.                End Select
  55.            Case Else
  56.                'En caso de que sea que sea desconocido...
  57.                Win2Version = "Unk"
  58.        End Select
  59.    End With
  60. End Function
  61.  

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
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
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