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


Характеристики окружения - часть 2


В результате выполнения функции будут заполнены поля этой структуры, содержащие всю необходимую информацию об используемой версии операционной системы. Конечно, необходимо в раздел объявлений включить и объявление типа OSVERSIONINFO. Возвращаемый функцией результат позволяет проанализировать успешность ее выполнения.
  • Процедура GlobalMemoryStatus имеет единственный, передаваемый по ссылке параметр типа MEMORYSTATUS. В результате выполнения процедуры поля структуры заполняются собранной информацией об объеме физической и виртуальной памяти, общей и доступной для использования в текущий момент, размере слова и некоторых других характеристиках памяти.
  • Процедура GetSystemInfo имеет единственный, передаваемый по ссылке параметр типа SYSTEM_INFO. В результате выполнения процедуры поля структуры заполняются собранной системной информацией о типе процессора, числе процессоров, используемом размере страницы и других характеристиках компьютера. Нужно ли говорить, что для корректного вызова функции требуется объявление типа SYSTEM_INFO и констант, необходимых для анализа значений поля dwProcessorType, определяющего тип центрального процессора.
  • Приведем теперь процедуру, в которой вызываются указанные функции API, обрабатывается полученная информация, конечные результаты выводятся в окно отладки:

    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




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



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