Trucos Obtener la información del sistema (memoria total, libre, versión, etc.)

Declarar en un módulo :

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

Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128
End Type

Type MEMORYSTATUS
  dwLength As Long
  dwMemoryLoad As Long
  dwTotalPhys As Long
  dwAvailPhys As Long
  dwTotalPageFile As Long
  dwAvailPageFile As Long
  dwTotalVirtual As Long
  dwAvailVirtual As Long
End Type

Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (LpVersionInformation
       As OSVERSIONINFO) As Long
Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)

Public Const PROCESSOR_INTEL_386 = 386
Public Const PROCESSOR_INTEL_486 = 486
Public Const PROCESSOR_INTEL_PENTIUM = 586
Public Const PROCESSOR_MIPS_R4000 = 4000
Public Const PROCESSOR_ALPHA_21064 = 21064


En un formulario :

Dim msg As String, ret%, ver_major$, ver_minor$, build$
MousePointer = 11
Dim verinfo As OSVERSIONINFO
verinfo.dwOSVersionInfoSize = Len(verinfo)
ret% = GetVersionEx(verinfo)
If ret% = 0 Then
   MsgBox "Error en information de la version"
   End
End If
Select Case verinfo.dwPlatformId
  Case 0 : msg = msg + "Windows 32s "
  Case 1 : msg = msg + "Windows 95 "
  Case 2 : msg = msg + "Windows NT "
End Select
ver_major$ = verinfo.dwMajorVersion
ver_minor$ = verinfo.dwMinorVersion
build$ = verinfo.dwBuildNumber
msg = msg + ver_major$ + "." + ver_minor$
msg = msg + " (Construido " + build$ + ")" + vbCrLf + vbCrLf

Dim sysinfo As SYSTEM_INFO
GetSystemInfo sysinfo
msg = msg + "CPU: "
Select Case sysinfo.dwProcessorType
  Case PROCESSOR_INTEL_386 : msg = msg + "Procesador Intel 386 o compatible." + vbCrLf
  Case PROCESSOR_INTEL_486 : msg = msg + "Procesador Intel 486 o compatible." + vbCrLf
  Case PROCESSOR_INTEL_PENTIUM : msg = msg + "Procesador Intel Pentium o compatible." + vbCrLf
  Case PROCESSOR_MIPS_R4000 : msg = msg + "Procesador MIPS R4000." + vbCrLf
  Case PROCESSOR_ALPHA_21064 : msg = msg + "Procesador DEC Alpha 21064." + vbCrLf
  Case Else : msg = msg + "Procesador (desconocido)." + vbCrLf
End Select
msg = msg + vbCrLf

Dim memsts As MEMORYSTATUS
Dim memory&
GlobalMemoryStatus memsts
memory& = memsts.dwTotalPhys
msg = msg + "Memoria Fisica Total: "
msg = msg + Format$(memory& \ 1024, "###,###,###") + "Kb" + vbCrLf
memory& = memsts.dwAvailPhys
msg = msg + "Memoria Fisica Disponible: "
msg = msg + Format$(memory& \ 1024, "###,###,###") + "Kb" + vbCrLf
memory& = memsts.dwTotalVirtual
msg = msg + "Memoria Virtual Total: "
msg = msg + Format$(memory& \ 1024, "###,###,###") + "Kb" + vbCrLf
memory& = memsts.dwAvailVirtual
msg = msg + "Memoria Virtual Disponible: "
msg = msg + Format$(memory& \ 1024, "###,###,###") + "Kb" + vbCrLf + vbCrLf
MsgBox msg, 0, "Información del Sistema"
MousePointer = 0



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com