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.
Закрыть окно