Функция GetSystemMetrics
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
GetSystemMetrics возвращает информацию относительно различных параметров в Windows. Большинство их имеет дело с размерами различных объектов (экрана, значков, курсоров, и т.д). Возвращаемое значение функции зависит от значения, указанного для nIndex. Имейте в виду, что все размеры (ширина и высота) измеряются в пикселах
Параметры
- nIndex
- Флажки, определяющие определенную часть информации
- SM_CXSCREEN = 0
- Возвращает ширину экрана
- SM_CYSCREEN = 1
- Возвращает высоту экрана
- SM_CXVSCROLL = 2
- только для Win 95/98: Возвращает ширину вертикальной полосы прокрутки
- SM_CYHSCROLL = 3
- только для Win 95/98: Возвращает высоту горизонтальной полосы прокрутки
- SM_CYCAPTION = 4
- Возвращает высоту нормальной области надписи
- SM_CXBORDER = 5
- Возвращает ширину границы окна
- SM_CYBORDER = 6
- Возвращает высоту границы окна
- SM_CXDLGFRAME = 7
- Возвращает ширину диалогового окна
- SM_CYDLGFRAME = 8
- Возвращает высоту диалогового окна
- SM_CYVTHUMB = 9
- Возвращает высоту вертикального бегунка полосы прокрутки
- SM_CXHTHUMB = 10
- Возвращает ширину горизонтального бегунка полосы прокрутки
- SM_CXICON = 11
- Возвращает заданную по умолчанию ширину значка
- SM_CYICON = 12
- Возвращает заданную по умолчанию высоту значка
- SM_CXCURSOR = 13
- Win NT: Возвращает ширину курсора. Win 95/98: Возвращает ширину стандартного точечного рисунка курсора
- SM_CYCURSOR = 14
- Возвращает высоту курсора
- 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 - нормальная, 1 - безопасный режим, 2 - безопасный режим с сетевой поддержкой
- SM_CMOUSEBUTTONS = 43
- Возвращает число кнопок мыши. Ноль, если мышь отсутсвует
- SM_CMETRICS = 44
- только для Win 95/98: Возвращает количество доступных параметров системы
- SM_CXDOUBLECLK = 36
- Ширина прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны,как двойной щелчок
- SM_CXDRAG = 68
- Возвращает минимальную ширину,при которой курсор должен двигаться, чтобы начать операцию перетаскивания
- SM_CXEDGE = 45
- только для Win 95/98: Возвращает ширину 3D границы окна
- SM_CXFRAME = 32
- Возвращает ширину границы окна изменяемого размера
- SM_CXFULLSCREEN = 16
- Возвращает ширину клиентской области полноэкранного окна
- SM_CXHSCROLL = 21
- только для Win 95/98: Возвращает ширину точечного рисунка стрелки на горизонтальной полосе прокрутки
- SM_CXICONSPACING = 38
- Возвращает ширину ячейки для позиционирования значков
- 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_CXSIZE = 30
- Возвращает ширину точечного рисунка в заголовке
- SM_CXSIZEFRAME = 32
- только для Win 95/98: Возвращает ширину толстой рамки окна
- SM_CXSMICON = 49
- только для Win 95/98: Возвращает рекомендуемую ширину для маленьких значков
- SM_CXSMSIZE = 52
- только для Win 95/98: Возвращает ширину маленькой надписи кнопки
- SM_CYDOUBLECLK = 37
- Возвращает высоту прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны как двойной щелчок
- SM_CYDRAG = 69
- Возвращает минимальную высоту,на которую курсор должен сдвинуться, чтобы начать операцию перетаскивания
- SM_CYEDGE = 46
- только для Win 95/98: Возвращает высоту трехмерной границы окна
- SM_CYFRAME = 33
- Возвращает высоту границы окна изменяемого размера
- SM_CYFULLSCREEN = 17
- Возвращает высоту клиентской области полноэкранного окна
- SM_CYICONSPACING = 39
- Возвращает высоту ячейки для позиционирования значков
- 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_CYSIZE = 31
- Возвращает высоту точечного рисунка области заголовка.
- 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_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 ' получим расширения экрана
Dim hasmouse As Long, numbuttons As Long ' присутствует ли мышка и число ее кнопок
' Отобразим разрешение экрана - то есть, ширину и высоту экрана
xres = GetSystemMetrics(SM_CXSCREEN)
yres = GetSystemMetrics(SM_CYSCREEN)
Debug.Print "Экран имеет "; xres; "пикселов в ширину и "; yres; "пикселов в высоту"
' Делаем форму на весь экран
Move 0, 0, _
ScaleX(wid, vbPixels, vbTwips), _
ScaleY(hgt, vbPixels, vbTwips)
' Отобразим число кнопок на мыши, если мышь присутствует
hasmouse = GetSystemMetrics(SM_MOUSEPRESENT)
numbuttons = GetSystemMetrics(SM_CMOUSEBUTTONS)
If hasmouse = 0 Then
Debug.Print "Мышь не установлена"
Else
Debug.Print "Мышь с "; numbuttons; "кнопками"
End If
Смотри также
SystemParametersInfo
Категория
Доступ к параметрам системы