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