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


Характеристики окружения


Наш следующий пример показывает, как получить, используя вызов Win32 API функций, следующие характеристики окружения:

  • Версию используемой операционной системы.
  • Тип процессора.
  • Общий и используемый объем физической и виртуальной памяти.

Функции, используемые в этом примере, принадлежат библиотеке Kernel32. Заметьте, что в отличие от большинства случаев в данном примере будут вызываться не только функции, но и процедуры, хранящиеся в библиотеке Kernel32. Начнем с описания констант, типов и операторов Declare, предшествующих вызову API функций:

Пример 6.3.

(html, txt)

Для сбора информации об окружении - используемом процессоре, операционной системе, имеющейся памяти и других характеристиках компьютера используем три следующие функции (процедуры) Win32 API:

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

Приведем теперь процедуру, в которой вызываются указанные функции API, обрабатывается полученная информация, конечные результаты выводятся в окно отладки:

Пример 6.4.

(html, txt)

Программа, по-видимому, не нуждается в особых комментариях, и мы ограничимся приведением результатов отладки, которые показывают мое рабочее окружение:

Windows NT 4.0 (Build 1381)

Процессор: Intel Pentium

Число процессоров: 1

Размер страницы: 4096

Минимальный адрес приложения: 65536

Максимальный адрес приложения: 2147418111

Физическая память. Всего: 32 180K

Физическая память. Доступно: 4 772K

Виртуальная память. Всего: 2 097 024K

Виртуальная память. Доступно: 1 982 872K

Длина слова: 32

Загрузка памяти: 0




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