Функция GetSystemMetrics

Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long

Платформа: Win 95/98, Win NT

GetSystemMetrics возвращает информацию относительно различных параметров в Windows. Большинство их имеет дело с размерами различных объектов(экрана, значков, курсоров, и т.д). Эта функция обеспечивает информацию относительно системы.Возвращаемое значение функции зависит от значения, указанного для nIndex. Имейте в виду, что все размеры (ширина и высота) измеряются в пикселах. Также обратите внимание, что некоторые параметры имеют слегка различные значения между Win NT и Win 95/98.

nIndex
Точно один из следующих флажков, определяющих определенную часть информации:
SM_ARRANGE = 56
только для Win 95/98: Возвращает метод отображения свернутых окон. Возвращаемое значение - комбинация двух из следующих флажков, одно определяет исходную позицию для свернутых значков и другое определяет направление, в котором новые значки будут добавлены:
ARW_BOTTOMLEFT = 0
Начало позиции, помещающее значки в левой нижней части экрана.
ARW_BOTTOMRIGHT = 1
Начало позиции, помещающее значки в правой нижней части экрана.
ARW_DOWN = 4
Добавляет новые значки ниже существующих.
ARW_HIDE = 8
Не размещает значки на экране (то есть, скрывает их).
ARW_LEFT = 0
Добавляет новые значки слева от существующих.
ARW_RIGHT = 4
Добавляет новые значки справа от существующих.
ARW_STARTRIGHT = 1
Аналогично ARW_BOTTOMRIGHT.
ARW_STARTTOP = 2
Аналогично ARW_TOPLEFT.
ARW_TOPLEFT = 2
Начало позиции, помещающее значки в верхнем левом углу экрана.
ARW_TOPRIGHT = 3
Начало позиции, помещающее значки в верхнем правом углу экрана.
ARW_UP = 0
Добавляет новые значки выше существующих.
SM_CLEANBOOT = 67
только для Win 95/98: Возвращает значение, определяющее, как компьютер был загружен. 0 - normal bootup, 1- fail-safe (a.k.a. SafeBoot) bootup, и 2 значит a fail-safe bootup with the network installed.
SM_CMETRICS = 44
только для Win 95/98: Возвращает количество параметров системы.
SM_CMOUSEBUTTONS = 43
Возвращает число кнопок на установленной мыши, или 0, если мышь не установлена.
SM_CXBORDER = 5
Win NT: Возвращает ширину границы окна. Win 95/98: Возвратите ширину отдельной границы окна.
SM_CXCURSOR = 13
Win NT: Возвращает ширину курсора. Win 95/98: Возвращает ширину стандартного точечного рисунка курсора.
SM_CXDLGFRAME = 7
только для Win NT: Возвращает ширину рамки окна, имеющей стиль диалогового окна.
SM_CXDOUBLECLK = 36
Ширина прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны,как двойной щелчок.
SM_CXDRAG = 68
Возвращает минимальную ширину,при которой курсор должен двигаться, чтобы начать операцию перетаскивания.
SM_CXEDGE = 45
только для Win 95/98: Возвращает ширину 3D границы окна.
SM_CXFRAME = 32
только для Win NT: Возвращает ширину границы окна изменяемого размера.
SM_CXFULLSCREEN = 16
Возвращает ширину клиентской области полноэкранного окна.
SM_CXHSCROLL = 21
только для Win 95/98: Возвращает ширину точечного рисунка стрелки на горизонтальной полосе прокрутки.
SM_CXHTHUMB = 10
Возвращает ширину горизонтального бегунка полосы прокрутки.
SM_CXICON = 11
Возвращает заданную по умолчанию ширину значка.
SM_CXICONSPACING = 38
Win NT: Возвращает ширину ячейки для позиционирования значков. Win 95/98: Возвращает ширину ячейки сетки для элементов в виде крупных значков.
SM_CXMAXIMIZED = 61
только для Win 95/98: Возвращает заданную по умолчанию ширину развернутого окна.
SM_CXMAXTRACK = 59
только для Win 95/98: Возвращает заданную по умолчанию максимальную ширину,если пользователю разрешено изменять размеры окна.
SM_CXMENUCHECK = 71
только для Win 95/98: Возвращает ширину заданного по умолчанию точечного рисунка метки меню.
SM_CXMENUSIZE = 54
только для Win 95/98: Возвращает ширину кнопки строки меню.
SM_CXMIN = 28
Возвращает минимальную ширину окна.
SM_CXMINIMIZED = 57
только для Win 95/98: Возвращает ширину нормально свернутого окна.
SM_CXMINSPACING = 47
только для Win 95/98: Возвращает ширину прямоугольника ячейки сетки используя позицию свернутого окна.
SM_CXMINTRACK = 34
только для Win 95/98: Возвращает заданную по умолчанию минимальную ширину
SM_CXSCREEN = 0
Возвращает ширину экрана.
SM_CXSIZE = 30
Win NT: Возвращает ширину точечного рисунка в заголовке. Win 95/98: Возвращает ширину кнопки заголовка.
SM_CXSIZEFRAME = 32
только для Win 95/98: Возвращает ширину толстой рамки окна.
SM_CXSMICON = 49
только для Win 95/98: Возвращает рекомендуемую ширину для маленьких значков.
SM_CXSMSIZE = 52
только для Win 95/98: Возвращает ширину маленькой надписи кнопки.
SM_CXVSCROLL = 2
только для Win 95/98: Возвращает ширину вертикальной полосы прокрутки.
SM_CYBORDER = 6
Win NT: Возвращает высоту границы окна. Win 95/98: Возвращает высоту отдельной границы окна.
SM_CYCAPTION = 4
Возвращает высоту нормальной области надписи.
SM_CYCURSOR = 14
Win NT: Возвращает высоту курсора. Win 95/98: Возвращает высоту стандартного точечного рисунка курсора.
SM_CYDLGFRAME = 8
только для Win NT: Возвращает высоту рамки окна, имеющей стиль диалога.
SM_CYDOUBLECLK = 37
Возвращает высоту прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны как двойной щелчок.
SM_CYDRAG = 69
Возвращает минимальную высоту,на которую курсор должен сдвинуться, чтобы начать операцию перетаскивания.
SM_CYEDGE = 46
только для Win 95/98: Возвращает высоту трехмерной границы окна.
SM_CYFRAME = 33
только для Win NT: Возвращает высоту границы окна изменяемого размера.
SM_CYFULLSCREEN = 17
Возвращает высоту клиентской области полноэкранного окна.
SM_CYHSCROLL = 3
только для Win 95/98: Возвращает высоту горизонтальной полосы прокрутки.
SM_CYICON = 12
Возвращает заданную по умолчанию высоту значка.
SM_CYICONSPACING = 39
Win NT: Возвращает высоту ячейки для позиционирования значков. Win 95/98: Возвращает высоту ячейки сетки для элементов в представлении в виде крупных значков.
SM_CYKANJIWINDOW = 18
Возвращает высоту окна Kanji (для версий набора символов с двойным байтом Windows).
SM_CYMAXIMIZED = 62
только для Win 95/98: Возвращает заданную по умолчанию высоту развернутого окна.
SM_CYMAXTRACK = 60
только для Win 95/98: Возвращает заданную по умолчанию максимальную высоту,если пользователю позволено изменять размеры окна.
SM_CYMENU = 15
Возвращает высоту отдельной строки меню.
SM_CYMENUCHECK = 72
только для Win 95/98: Возвращает высоту заданного по умолчанию точечного рисунка метки меню.
SM_CYMENUSIZE = 55
только для Win 95/98: Возвращает высоту кнопки строки меню.
SM_CYMIN = 29
Возвращает минимальную высоту окна.
SM_CYMINIMIZED = 58
только для Win 95/98: Возвращает высоту нормально свернутого окна.
SM_CYMINSPACING = 48
только для Win 95/98: Возвращает высоту прямоугольника ячейки сетки используемой для позиционирования свернутых окон.
SM_CYMINTRACK = 35
только для Win 95/98: Возвращает заданную по умолчанию минимальную высоту, если пользователю позволено изменять размеры окна.
SM_CYSCREEN = 1
Возвращает высоту экрана.
SM_CYSIZE = 31
Win NT: Возвращает высоту точечного рисунка области заголовка. Win 95/98: Возвращает высоту надписи кнопки.
SM_CYSIZEFRAME = 33
только для Win 95/98: Возвращает высоту толстой рамки окна.
SM_CYSMCAPTION = 51
только для Win 95/98: Возвращает высоту маленькой области заголовка.
SM_CYSMICON = 50
только для Win 95/98: Возвращает рекомендуемую высоту для маленьких значков.
SM_CYSMSIZE = 53
только для Win 95/98: Возвращает высоту кнопки маленькой надписи.
SM_CYVSCROLL = 20
только для Win 95/98: Возвращает высоту точечного рисунка стрелки на вертикальной полосе прокрутки.
SM_CYVTHUMB = 9
Возвращает высоту вертикального бегунка полосы прокрутки.
SM_DBCSENABLED = 42
Возвращает ненулевое значение, если версия набора символов с двойным байтом USER.EXE установлена, 0 если нет.
SM_DEBUG = 22
Возвращает ненулевое значение, если версия отладки USER.EXE установлена, 0 если нет.
SM_MENUDROPALIGNMENT = 40
Возвращает ненулевое значение, если всплывающие меню появляются справа, 0 если слева.
SM_MIDEASTENABLED = 74
Возвращает ненулевое значение, если система использует еврейские и арабские языки, 0 если нет.
SM_MOUSEPRESENT = 19
Возвращает ненулевое значение, если мышь установлена и присутствует, 0 если нет.
SM_NETWORK = 63
Установка &H1 бит возвращаемого значения, если сеть установлена. Все другие биты возвращаемого значения зарезервированы и неопределенны.
SM_PENWINDOWS = 41
Return a non-zero value if the Microsoft Windows for Pen computing extensions are installed, 0 if not.
SM_SECURE = 44
Возвращает ненулевое значение, если защита присутствует и активна, 0 если нет.
SM_SHOWSOUNDS = 70
Возвращает ненулевое значение, если приложение показывает визуальную команду вызова программы для всех звуков, 0 если нет.
SM_SLOWMACHINE = 73
Возвращает ненулевое значение, если система имеет медленный процессор, 0 если нет.
SM_SWAPBUTTON = 23
Возвращает ненулевое значение, если левые и правые кнопки мыши поменялись, 0 если нет.

Пример:

' Отобразим разрешающую способность (размер) экрана и некоторую информацию относительно
' конфигурации окон.
Dim xres As Long, yres As Long  ' получим расширения экрана x и y
Dim hasmouse As Long, numbuttons As Long  ' Узнаем,присутствует ли мышка и число ее кнопок

' Отобразим разрешение экрана - то есть, ширину и высоту экрана.
xres = GetSystemMetrics(SM_CXSCREEN)
yres = GetSystemMetrics(SM_CYSCREEN)
Debug.Print "Экран имеет "; xres; "пикселов в ширину и "; yres; "пикселов в высоту."

' Отобразим число кнопок на мыши, если мышь присутствует.
hasmouse = GetSystemMetrics(SM_MOUSEPRESENT)
numbuttons = GetSystemMetrics(SM_CMOUSEBUTTONS)
If hasmouse = 0 Then
  Debug.Print "Мышь не установлена."
Else
  Debug.Print "Мышь с "; numbuttons; "кнопками."
End If

Схожие функции: SystemParametersInfo
Категория Доступ к параметрам системы

В начало