Функция SystemParametersInfo

Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uiParam As Long, pvParam As Any, ByVal fWinIni As Long) As Long

SystemParametersInfo читает или устанавливает информацию относительно многочисленных параметров настройки в Windows. Точное поведение функции зависит от флажка uAction. Все размеры и измерения, используемые этой функцией измеряются в пикселах. При использовании структуры для получения информации, поле, идентифицирующее размер структуры (если существует) должно быть правильно установлено заранее. Обычно, многие из свойств устанавливаются через Панель управления
uAction
Флаги, определяющие получаемый или задаваемый параметр:
SPI_GETBEEP = 1
Определяет, вкл. или выкл. устройство звуковой сигнализации предупреждения. uiParam должна быть установлена в 0. pvParam - переменная типа Long, которая получает 0, если устройство звуковой сигнализации предупреждения выключено, или ненулевое значение, если включено
SPI_SETBEEP = 2
Включает или выключает звуковое предупреждение. uiParam равен 0, чтобы выключить, ненулевое значение, чтобы включить pvParam должен быть равен 0
SPI_GETMOUSE = 3
Получает the x-axis and y-axis threshold values for the mouse as well as the mouse speed. uiParam должен быть равен 0. pvParam - массив из трех элементов типа Long, получающих x-threshold, y-threshold, и скорость мыши
SPI_SETMOUSE = 4
Set the x-axis and y-axis threshold values for the mouse as well as the mouse speed. uiParam должен быть равен 0. pvParam is a three-element Long-type array; the first element is the x-threshold, the second element is the y-threshold, and the third element is the mouse speed
SPI_GETBORDER = 5
Определяет толщину рамки окна. uiParam должен быть равен 0. pvParam - переменная типа Long, которая получает текущие установки
SPI_SETBORDER = 6
Устанавливает коэффициент, управляющий толщиной рамки для изменения размеров окна. uiParam содержит новую установку. pvParam должен быть равен 0
SPI_GETKEYBOARDSPEED = 10
Получает скорость повтора символов клавиатуры при нажатой клавише. uiParam должен быть равным 0. pvParam - переменная типа Long, получающая текущую настройку скорости(от 0 до 31)
SPI_SETKEYBOARDSPEED = 11
Устанавливает скорость повтора символов клавиатуры при нажатой клавише. uiParam - новое значение скорости(от 0 до 31). pvParam должен быть равным 0
SPI_LANGDRIVER = 12
только Win 95/98: Retrieve the filename of the language driver. uiParam должен быть равным 0. pvParam is a String (with sufficient buffer space) which receives the filename of the language driver
SPI_ICONHORIZONTALSPACING = 13
Set the width of the icon spacing cell. uiParam is the new setting for the width. pvParam должен быть равным 0
SPI_GETSCREENSAVETIMEOUT = 14
Retrieve the time-out period, in seconds, which must elapse before the screen saver begins running. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives the time-out value
SPI_SETSCREENSAVETIMEOUT = 15
Set the time-out period, in seconds, which must elapse before Windows launches a screen saver. uiParam is the new time-out period. pvParam must be 0
SPI_GETSCREENSAVEACTIVE = 16
Determine if a screen saver is set to run. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if no screen saver is set to run, or a non-zero value if one is
SPI_SETSCREENSAVEACTIVE = 17
Set whether Windows activates a screen saver after a period of inactivity. uiParam is 0 to turn the screen saver off, or a non-zero value to turn it on. pvParam must be 0
SPI_GETGRIDGRANULARITY = 18
Получает текущую гранулярность текущей сетки рабочего стола. uiParam должен быть равен 0. pvParam - переменная, типа Long, получающия текущую настройку
SPI_SETGRIDGRANULARITY = 19
Устанавливает гранулярность сетки рабочего стола. uiParam содержит новую установку. pvParam должен быть равен 0
SPI_SETDESKWALLPAPER = 20 (или &H14)
Установка рисунка для обоев Рабочего стола. uiParam должна быть установлена в 0. pvParam- Строка,содержащая имя файла рисунка, чтобы использовать как обои
SPI_SETDESKPATTERN = 21
Set the current desktop pattern bitmap by causing Windows to reread the Pattern setting in the [Desktop] section of WIN.INI. Both uiParam and pvParam must be 0
SPI_GETKEYBOARDDELAY = 22
Retrieve the current keyboard repeat delay setting, which is the time before a held key begins to repeat. uiParam must be 0. pvParam is a Long-type variable which receives the current delay setting (a value between 0 and 3)
SPI_SETKEYBOARDDELAY = 23
Set the keyboard repeat-delay setting, which is the time that must elapse before a held key begins to repeat. uiParam is the new delay setting, between 0 and 3 inclusive. pvParam must be 0
SPI_ICONVERTICALSPACING = 24
Set the height of the icon spacing cell. uiParam is the new setting for the height. pvParam must be 0
SPI_GETICONTITLEWRAP = 25
Determine if Windows word-wraps the text of icon titles. uiParam must be 0. pvParam is a Long-type variable which receives 0 if word-wrapping is not enabled, or a non-zero value if it is
SPI_SETICONTITLEWRAP = 26
Turn the word-wrapping of icon titles on or off. uiParam is 0 to turn word-wrapping off, or a non-zero value to turn it on. pvParam must be 0
SPI_GETMENUDROPALIGNMENT = 27
Determine if popup menus are left- or right-aligned. uiParam должен быть 0. pvParam is a Long-type variable which receives 0 if the menus are right-aligned, or a non-zero value if they are left-aligned
SPI_SETMENUDROPALIGNMENT = 28
Set whether pop-up menus open to the left or to the right. uiParam is 0 if they open to the left, or a non-zero value if they open to the right. pvParam must be 0
SPI_SETDOUBLECLKWIDTH = 29
Set the width of the rectangle within which two successive mouse clicks must occur for Windows to interpret the input to be a double click. uiParam is the new width. pvParam must be 0
SPI_SETDOUBLECLKHEIGHT = 30
Set the height of the rectangle within which two successive mouse clicks must occur for Windows to interpret the input to be a double click. uiParam is the new height. pvParam must be 0
SPI_GETICONTITLELOGFONT = 31
Retrieve information about the logical font used to display the titles of icons. uiParam must be the size of the LOGFONT structure. pvParam is a LOGFONT structure which receives information about the logical font
SPI_SETDOUBLECLICKTIME = 32
Set the time, in milliseconds, within which two successive mouse clicks must occur for Windows to interpret the input to be a double click. uiParam is the new double click time. pvParam must be 0
SPI_SETMOUSEBUTTONSWAP = 33
Swap or unswap the meanings of the left and right mouse buttons. uiParam is 0 to restore the left-to-left/right-to-right mapping, or a non-zero value to swap the buttons into a left-to-right/right-to-left mapping. pvParam must be 0
SPI_SETICONTITLELOGFONT = 34
Set the logical font used to display the text of icon titles. uiParam must be the size of the LOGFONT structure. pvParam is a LOGFONT structure holding the logical font to use
SPI_GETFASTTASKSWITCH = 35
Определяет, разрешено ли быстрое переключение задач Alt-Tab. uiParam должен быть равен 0. pvParam - переменная типа Long, которая получает 0, если быстрое переключение не доступно
SPI_SETFASTTASKSWITCH = 36
Включает или выключает быстрое переключение задач Alt-Tab. uiParam равен 0 для отключения, или ненулевое значение для включения режима. pvParam должен быть равен 0
SPI_SETDRAGFULLWINDOWS = 37
только для Win 95/98: Включает или выключает полное содержание окна при перемещении или изменении. uiParam равен 0 для выключения режима, или ненулевое значение для включения режима
SPI_GETDRAGFULLWINDOWS = 38
только для Win 95/98: Определяет, отображает ли Windows полное содержание окна при перемещении или изменении. uiParam должен быть равен 0. pvParam - переменная типа Long, которая получает 0, если содержание не отображено или ненулевое значение, если отображено
SPI_GETNONCLIENTMETRICS = 41
Win 95/98: Возвращает метрические данные, связанные с неклиентской областью окна. uiParam должна быть равным 0. pvParam - структура NONCLIENTMETRICS, получающия метрические данные неклиентской области окна
SPI_SETNONCLIENTMETRICS = 42
Win 95/98: Устанавливает метрические данные, связанные с неклиентской областью окна. uiParam должна быть равной 0. pvParam - структура NONCLIENTMETRICS, содержащая новые метрические данные
SPI_GETMINIMIZEDMETRICS = 43
Win 95/98: Возвращает данные, связанные с свернутыми окнами, которые определяют способ вывода свернутых окон на экране. uiParam должна иметь размер структуры MINIMIZEDMETRICS. pvParam - структура MINIMIZEDMETRICS, которая получает данные о свернутых окнах
SPI_SETMINIMIZEDMETRICS = 44
Win 95/98: Устанавливает данные, связанные с свернутыми окнами, которые определяют способ вывода свернутых окон на экране. uiParam должна быть равной 0. pvParam - структура MINIMIZEDMETRICS, содержащая данные о свернутых окнах
SPI_GETICONMETRICS = 45
только Win 95/98/ME: Получает информацию о расположении значков. uiParam должен быть равен 0. pvParam - структура ICONMETRICS
SPI_SETICONMETRICS = 46
только Win 95/98/ME: Устанавливает расположение значков. uiParam должен быть равен 0. pvParam - структура ICONMETRICS, содержащая новые параметры
SPI_SETWORKAREA = 47
Win 95/98 only: Set the rectangle defining the working area of the desktop. The working area is the area of the desktop not obscured by the taskbar. uiParam must be 0. pvParam is a RECT structure holding the new working area rectangle
SPI_GETWORKAREA = 48
Win 95/98 only: Retrieve the size of the working area, which is a rectangle identifying the area of the desktop not obscured by the taskbar. uiParam must be 0. pvParam is a RECT structure which receives the rectangle of the working area
SPI_SETPENWINDOWS = 49
Win 95/98 only: Load or unload Microsoft Pen for Windows, if available. uiParam is 0 to unload Pen, or a non-zero value to load Pen. pvParam must be 0
SPI_GETFILTERKEYS = 50
Получает настройки специальных возможностей работы с клавиатурой FilterKeys. uiParam должен быть размером структуры FILTERKEYS. pvParam - структура FILTERKEYS
SPI_SETFILTERKEYS = 51
Устанавливает специальные возможности работы с клавиатурой. uiParam должен быть размером структуры FILTERKEYS. pvParam - структура FILTERKEYS, содержащая новые настройки
SPI_GETTOGGLEKEYS = 52
Получает настройки возможностей ToggleKeys. uiParam должна иметь размер структуры TOGGLEKEYS. pvParam - структура TOGGLEKEYS, получающая текущие настройки ToggleKeys
SPI_SETTOGGLEKEYS = 53
Устанавливает настройки возможностей ToggleKeys. uiParam - размер структуры TOGGLEKEYS. pvParam - структура TOGGLEKEYS, содержащая новые настройки для ToggleKeys
SPI_GETMOUSEKEYS = 54
Получает настройки специальных возможностей мыши MouseKeys. uiParam должна быть размером структуры MOUSEKEYS. pvParam - структура MOUSEKEYS, получающая текущие настройки MouseKeys
SPI_SETMOUSEKEYS = 55
Устанавливает настройки специальных возможностей мыши MouseKeys. uiParam должна иметь размер структуры MOUSEKEYS. pvParam - структура MOUSEKEYS, содержащая новые настройки MouseKeys
SPI_GETSHOWSOUNDS = 56
Determine if the user desires visual information to replace or suppliment otherwise audio-only output. uiParam must be 0. pvParam is a Long-type variable which receives 0 if programs should not display this added visual information, or a non-zero value if they should
SPI_SETSHOWSOUNDS = 57
Turn the ShowSounds accessibility feature on or off. uiParam is 0 to turn ShowSounds off, or a non-zero value to turn ShowSounds on. pvParam must be 0
SPI_GETSTICKYKEYS = 58
Retrieve the settings of the StickyKeys accessibility feature. uiParam must be the size of the STICKYKEYS structure. pvParam is a STICKYKEYS structure which receives the settings of StickyKeys
SPI_SETSTICKYKEYS = 59
Set the settings of the StickyKeys accessibility feature. uiParam is the size of the STICKYKEYS structure. pvParam is a STICKYKEYS structure holding the new settings for StickyKeys
SPI_GETACCESSTIMEOUT = 60
Получает информацию относительно блокировки времени, относящиеся к специальным возможностям Windows. uiParam должна быть размером структуры ACCESSTIMEOUT. pvParam - структура ACCESSTIMEOUT, получающая установки относительно блокировки времени
SPI_SETACCESSTIMEOUT = 61
Set information associated with the time-out period associated with the accessibility features. uiParam must be the size of the ACCESSTIMEOUT structure. pvParam is an ACCESSTIMEOUT structure holding the new time-out period settings
SPI_GETSERIALKEYS = 62
только для Win 95/98: Возвращает настройки режима SerialKeys. uiParam равен 0. pvParam - структура SERIALKEYS, получающия текущие настройки SerialKeys
SPI_SETSERIALKEYS = 63
только Win 95/98: Устанавливает настройки для режима SerialKeys. uiParam равен 0. pvParam - структура SERIALKEYS, содержащая новые настройки для режима SerialKeys
SPI_GETSOUNDSENTRY = 64
Retrieve the settings of the SoundSentry accessibility feature. uiParam must be the size of the SOUNDSENTRY structure. pvParam is a SOUNDSENTRY structure which receives the current settings of SoundSentry
SPI_SETSOUNDSENTRY = 65
Set the settings of the SoundSentry accessibility feature. uiParam must be the size of the SOUNDSENTRY structure. pvParam is a SOUNDSENTRY structure holding the new settings for SoundSentry
SPI_GETHIGHCONTRAST = 66
Возвращает настройки режима специальных возможностей высокой контрастности HighContrast. uiParam должен быть равен 0. pvParam - структура HIGHCONTRAST, получающая текущие настройки HighContrast
SPI_SETHIGHCONTRAST = 67
Устанавливает настройки режима специальных возможностей высокой контрастности HighContrast. uiParam должен быть равен 0. pvParam - структура HIGHCONTRAST, содержащая новый настройки для HighContrast
SPI_GETKEYBOARDPREF = 68
Win 95/98 only: Determine if the user relies on the keyboard instead of the mouse and wants programs to display keyboard interfaces which are otherwise hidden. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if the user does not rely on the keyboard, or a non-zero value if the user does
SPI_SETKEYBOARDPREF = 69
Win 95/98 only: Tell Windows whether the user depends on the keyboard as the main input device and wishes programs to display additional keyboard-based interfaces. uiParam is 0 to not indicate a keyboard preference, or a non-zero value to indicate one. pvParam must be 0
SPI_GETSCREENREADER = 70
Win 95/98 only: Determine if a screen reader utility is running. If it is, applications should present more textual output instead of graphical output to help the reader function better. uiParam должна быть установлена в 0. pvParam is a Long-type variable which receives 0 if no screen reader is running, or a non-zero value if one is
SPI_SETSCREENREADER = 71
Win 95/98 only: Set whether a screen-reading program is currently running. uiParam is 0 if no reader is in use, or a non-zero value if one is. pvParam must be 0
SPI_GETANIMATION = 72
только для Win 95/98: Получает информацию относительно эффектов анимации, связанных с действиями пользователя. uiParam должен быть равен 0. pvParam - структура ANIMATIONINFO, получающая установки относительно эффектов анимации
SPI_SETANIMATION = 73
только для Win 95/98: Устанавливает информацию относительно эффектов анимации, связанных с действиями пользователя. uiParam должен быть равен 0. pvParam - структура ANIMATIONINFO, получающая установки относительно эффектов анимации
SPI_GETFONTSMOOTHING = 74
Определяет, разрешен ли режим сглаживания шрифтов. uiParam должен быть равен 0. pvParam - переменная типа Long, которая получает 0, если сглаживание не доступно или ненулевое значение в других случаях(Win95: Данный флаг поддерживается при установленном пакете Plus!)
SPI_SETFONTSMOOTHING = 75
Включает/выключает сглаживание шрифтов. uiParam равен 0 для выключения режима сглаживания, или ненулевое значение для включения режима сглаживания
SPI_SETDRAGWIDTH = 76
Win 95/98 only: Set the width of the rectangle which the cursor must move out of with a button depressed for Windows to begin a drag operation. uiParam is the new width. pvParam must be 0
SPI_SETDRAGHEIGHT = 77
Win 95/98 only: Set the height of the rectangle which the cursor must move out of with a button depressed for Windows to begin a drag operation. uiParam is the new height. pvParam must be 0
SPI_GETLOWPOWERTIMEOUT = 79
Win 95/98 only: Retrieve the time, in seconds, which must elapse before Windows enters low-power mode. uiParam must be 0. pvParam is a Long-type variable which receives the current timeout value
SPI_GETPOWEROFFTIMEOUT = 80
Win 95/98 only: Retrieve the time-out value, in seconds, that must elapse before Windows enters power-off mode. uiParam must be 0. pvParam is a Long-type variable which receives the time-out value for power-off mode
SPI_SETLOWPOWERTIMEOUT = 81
Win 95/98 only: Set the time-out period (in seconds) which must elapse after user input before Windows enters low-power mode. uiParam is the new time-out period. pvParam must be 0
SPI_SETPOWEROFFTIMEOUT = 82
Win 95/98 only: Set the time-out period, in seconds, which must elapse without user input before Windows enters power-off mode. uiParam is the new time-out period. pvParam must be 0
SPI_GETLOWPOWERACTIVE = 83
Win 95/98 only: Determine if the system enters a low-power mode after a period of inactivity. uiParam must be 0. pvParam is a Long-type variable which receives 0 if low-power mode is not enabled, or a non-zero value if it is
SPI_GETPOWEROFFACTIVE = 84
Win 95/98 only: Determine if the system enters a power-off mode after a period of inactivity. uiParam must be 0. pvParam is a Long-type variable which receives 0 if power-off mode is not enabled, or a non-zero value if power-off mode is enabled
SPI_SETLOWPOWERACTIVE = 85
Win 95/98 only: Turn the low-power mode after a period of inactivity on or off. uiParam is 0 to deactivate low-power mode, or 1 to activate to. pvParam must be 0
SPI_SETPOWEROFFACTIVE = 86
Win 95/98 only: Set whether the system powers down after a period of inactivity. uiParam is 0 to not enter power-off mode, or a non-zero value to enter power-off mode. pvParam must be 0
SPI_SETCURSORS = 87
Reload the images used for the system cursors. uiParam and pvParam must be 0
SPI_SETICONS = 88
Reload the images used for the system icons. uiParam and pvParam must be 0
SPI_GETDEFAULTINPUTLANG = 89
только для Win 95/98: Получает дескриптор расладки клавиатуры, используемой по умолчанию. uiParam должен быть равен 0. pvParam - переменная типа Long, которая получает дескриптор
SPI_SETDEFAULTINPUTLANG = 90
только для Win 95/98: Устанавливает раскладку клавиатуры по умолчанию. uiParam - дескриптор раскладки клавиатуры. pvParam должен быть равен 0
SPI_SETLANGTOGGLE = 91
Win 95/98 only: Set the hot key used to switch keyboard input languages. The new value is read from the registry at HKEY_CURRENT_USER\keyboard layout\toggle: 1 sets the hot key to ALT+SHIFT, 2 sets the hot key to CTRL+SHIFT, and 3 disables the hot key. uiParam and pvParam must be 0
SPI_GETWINDOWSEXTENSION = 92
Win 95/98 only: Determine if the Windows extensions are installed. Win 95 requires that Microsoft Plus! be installed to get the extensions; the extensions are integrated as a part of Win 98. uiParam must be 1. pvParam must be 0. The function returns 0 if the extensions are disabled, or a non-zero value if they are enabled
SPI_SETMOUSETRAILS = 93
Win 95/98 only: Set the length of the mouse trail. uiParam is 0 or 1 to turn mouse trails off, or a value greater than one identifying the number of cursor images used to make up the mouse trail. pvParam must be 0
SPI_GETMOUSETRAILS = 94
только Win 95/98: Retrieve the current mouse trails setting. uiParam must be 0. pvParam receives 0 or 1 if mouse trails are not enabled, or a value greater than one identifying the number of cursor images making up the mouse trail
SPI_SCREENSAVERRUNNING = 97
Отключает или включает возможность использования сочетаний клавиш Ctrl-Alt-Delete(или Alt-Tab). uiParam, равный 1 отключает клавиши, а равный 0 включает. pvParam должен быть равным 0. Изменения затрагивают всю систему в целом. Поэтому, не забывайте в вашей программе включать возможность использования этих клавиш!
uiParam
The purpose of this parameter varies with uAction
pvParam
The purpose of this parameter varies with uAction. In VB, if this is to be set as a string or to 0, the ByVal keyword must preceed it
fWinIni
Следующие флаги определяют варианты работы функции. Обычно, устанавливается в 0, если функция не вносит никаких изменений в реестр. Но существуют и другие варианты
SPIF_SENDWININICHANGE = &H2
Распространяет сделанные изменения ко всем работающим программам
SPIF_UPDATEINIFILE = &H1
Сохраняет изменения в реестре

Пример

' Установим рисунок для обоев Рабочего стола с помощью файла button.bmp из папки C:\Samples
' Обратите внимание, что строка передается функции с ключевым словом ByVal
Dim sample As String  ' имя файла
Dim retval As Long  ' возвращаемое значение

sample = "C:\Samples\button.bmp"
' Установливаем обои Windows, сохраняя изменения и уведомляя все программы
retval = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, ByVal sample, SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE)

' Другой пример. Отключим сочетания клавиш
' Ctrl-Alt-Delete 
retval = SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1&, 0&, 0)
' Не забудьте восстановить возможность работы
' с клавишами в вашей программе
' Например, в Form_Unload
' retval = SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0&, 0&, 0)

Смотри также

GetSystemMetrics

Категория

Доступ к параметрам системы