FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Api GetVersionEx
Tengo implementada la api GetVersionEx en delphi y me funciona sin problemas, pero en VB no me detecta el sistema operativo XP , ¿si es la misma api y la misma estructura de la funcion por que no funciona igual?, ¿Alguien sabe como detecto sistema operativo XP con VB me podria ayudar?
Gracias Este es el codigo en VB Código:
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type Enum TipoSO cOsUnknown = 1 cOsWin95 = 2 cOsWin98 = 3 cOsWin98SE = 4 cOsWinME = 5 cOsWinNT = 6 cOsWin2000 = 7 cOsWinXP = 8 End Enum Type SYSTEM_INFO dwOemID As Long dwPageSize As Long lpMinimumApplicationAddress As Long lpMaximumApplicationAddress As Long dwActiveProcessorMask As Long dwNumberOrfProcessors As Long dwProcessorType As Long dwAllocationGranularity As Long dwReserved As Long End Type Public Function SistemaOperativo() As String Dim osVersion As OSVERSIONINFO Dim Major As Integer Dim Minor As Integer Dim Version As Integer osVersion.dwOSVersionInfoSize = MAX_LENGTH If (GetVersionEx(osVersion)) Then Major = osVersion.dwMajorVersion Minor = osVersion.dwMinorVersion Select Case osVersion.dwPlatformId Case VER_PLATFORM_WIN32_NT 'Windows NT/2000/XP If (Major <= 4) Then Version = cOsWinNT Else If (Major = 5) And (Minor = 0) Then Version = cOsWin2000 Else If (Major = 5) And (Minor = 1) Then Version = cOsWinXP Else Version = cOsUnknown End If End If End If Case VER_PLATFORM_WIN32_WINDOWS 'Windows 9x/ME If (Major = 4) And (Minor = 0) Then Version = cOsWin95 Else If (Major = 4) And (Minor = 10) Then If (Mid(osVersion.szCSDVersion, 1, 1) = "A") Then Version = cOsWin98SE Else Version = cOsWin98 End If Else If (Major = 4) And (Minor = 90) Then Version = cOsWinME Else Version = cOsUnknown End If End If End If Case Else Version = cOsUnknown End Select Else Version = cOsUnknown End If Select Case Version Case cOsUnknown SistemaOperativo = "(sistema no reconocido)" Case cOsWin95 SistemaOperativo = "Microsoft Windows 95" Case cOsWin98 SistemaOperativo = "Microsoft Windows 98" Case cOsWin98SE SistemaOperativo = "Microsoft Windows 98 Second Edition" Case cOsWinME SistemaOperativo = "Microsoft Windows Millennium Edition" Case cOsWinNT SistemaOperativo = "Microsoft Windows NT" Case cOsWin2000 SistemaOperativo = "Microsoft Windows 2000" Case cOsWinXP SistemaOperativo = "Microsoft Windows XP" Case Else SistemaOperativo = "Microsoft Windows" End Select End Function
Última edición por agonzalez fecha: 07-09-2004 a las 14:48:11. |
#2
|
||||
|
||||
Hola.
No sos nuevo en el foro. Es de esperar que utilices las etiquetas [code] y/o [delphi] para publicar trozos de código. Te recomiendo editar tu mensaje si esperas que alguien se lo lea para ayudarte, ya que publicado de esta manera es mucho mas dificil de leer. Si no sabes como usar las etiquetas, en mi firma hay un vínculo a la ayuda de code y al inicio de cada foro un mensaje que explica las nuevas etiquetas vB. Hasta luego. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Cita:
Y no está de más recordale al compañero agonzalez que si bien alguien puede contestarle, éstos no son foros de Visual Basic. // Saludos |
#4
|
||||
|
||||
Cita:
Quizas no me expresé bien, pero me refería a usar la etiqueta [code] para vb, y la etiqueta [delphi] para Delphi. Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Tengo bien claro que no es un foro de VB, espero una respuesta desde el lado de Delphi de pronto la unit de Windows hace algún calculo adicional al que entrega la api en vB. por que de hecho hay diferencias:
Delphi me retorna un Bool, ¿que por sierto no se que es? Supongo un boolean y en VB me retorna un Long Código:
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long Gracias por su atención y por su valiosa ayuda |
#6
|
|||
|
|||
Cita:
Cita:
Espero te sirva |
|
|
|