Основы офисного программирования и язык VBA


Пример 6.4


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




Начало  Назад  Вперед



Книжный магазин