Public Sub WorkWithStatus()
Dim res As Long 'Результат выполнения функции
Dim msg As String ' Формируемое сообщение
Dim verinfo As OSVERSIONINFO 'Информация об ОС и ее версиях
Dim sysinfo As SYSTEM_INFO 'Системная информация
Dim memstatus As MEMORYSTATUS 'Информация о статусе памяти
verinfo.dwOSVersionInfoSize = Len(verinfo)
res = GetVersionEx(verinfo)
If res > 0 Then
Select Case verinfo.dwPlatformId
Case 0
msg = "Windows 32s "
Case 1
msg = "Windows 95/98 "
Case 2
msg = "Windows NT "
End Select
msg = msg & verinfo.dwMajorVersion & "." & verinfo.dwMinorVersion
msg = msg & " (Build " & verinfo.dwBuildNumber & ")" & vbCrLf
Debug.Print msg
Else
MsgBox ("Не могу получить версию операционной системы")
End If
' определение типа процессора
GetSystemInfo sysinfo
msg = "Процессор: "
Select Case sysinfo.dwProcessorType
Case PROCESSOR_INTEL_386
msg = msg & "Intel 386" & vbCrLf
Case PROCESSOR_INTEL_486
msg = msg & "Intel 486" & vbCrLf
Case PROCESSOR_INTEL_PENTIUM
msg = msg & "Intel Pentium" & vbCrLf
Case PROCESSOR_MIPS_R4000
msg = msg & "MIPS R4000" & vbCrLf
Case PROCESSOR_ALPHA_21064
msg = msg & "DEC Alpha 21064" & vbCrLf
Case Else
msg = msg & "(unknown)" & vbCrLf
End Select
Debug.Print msg
msg = "Число процессоров: " & sysinfo.dwNumberOrfProcessors & vbCrLf
Debug.Print msg
msg = "Размер страницы: " & sysinfo.dwPageSize & vbCrLf
Debug.Print msg
msg = "Минимальный адрес приложения: " & sysinfo.lpMinimumApplicationAddress & vbCrLf
Debug.Print msg
msg = "Максимальный адрес приложения: " & sysinfo.lpMaximumApplicationAddress & vbCrLf
Debug.Print msg
' Получение характеристик памяти
GlobalMemoryStatus memstatus
msg = "Физическая память. Всего: " & _
VBA.Format$(memstatus.dwTotalPhys \ 1024, "###,###,###") & "K" & vbCrLf
Debug.Print msg
msg = "Физическая память. Доступно: " & _
VBA.Format$(memstatus.dwAvailPhys \ 1024, "###,###,###") & "K" & vbCrLf
Debug.Print msg
msg = "Виртуальная память. Всего: " & _
VBA.Format$(memstatus.dwTotalVirtual \ 1024, "###,###,###") & "K" & vbCrLf
Debug.Print msg
msg = "Виртуальная память. Доступно: " & _
VBA.Format$(memstatus.dwAvailVirtual \ 1024, "###,###,###") & "K" & vbCrLf
Debug.Print msg
msg = "Длина слова: " & memstatus.dwLength & vbCrLf
Debug.Print msg
msg = "Загрузка памяти: " & memstatus.dwMemoryLoad & vbCrLf
Debug.Print msg
End Sub
|
Пример 6.4. |
| Закрыть окно |