Изменение системных параметров
Изменение системных параметров
Изменение системных параметров function systemparametersinfo(uiaction, uiparam: uint; pvparam: pointer; fwinini: uint): bool; uiaction Одна из констант spi_xxx (список - ниже) uiparam Значение зависит от uiaction, если в описании соотв. spi_xxx константы ничего о uiparam не сказано, то нуль. pvparam Определяет значение изменяемого параметра (имеет тип pointer). Также в это поле записывается возвращаемое значение. Если используется константа типа spi_getxxx, то в переменную на которую указывает pvparam будет помещен результат. С константами spi_setxxx аналогично. fwinini Если системный параметр будет Устанавливаться (не считываться), то значение этого поля определяет, будет ли изменен соответствующий .ini файл, а также, будет ли послано сообщение wm_settingchange всм окнам верхнего уровня, чтобы они смогли принять эти изменения для корректировки своего состояния. Параметр м.б. равен нулю или одной из следующих констант: spif_updateinifile Записать изменения в .ini файл spif_sendchange Послать сообщение wm_settingchange после обновления пользовательского профайла (.ini файла) Если выполнение прошло успешно, возвращается true иначе - false Список всех spi_xxx констант spi_getmouse Возвращает два пороговых значения мыши и её скорость. pvparam должен быть указателем на массив из трех элементов integer, в которые и будут записаны эти значения spi_setmouse Устанавливает два пороговых значения мыши и её скорость. pvparam должен быть указателем на массив из трех элементов integer, которые должны содержать требуемые значения в том порядке, в котором они описаны spi_getborder Возвращает толщину границы окон, способных изменять размер. pvparam должен быть указателем на переменную типа integer spi_setborder Устанавливает толщину границы окон, способных изменять размер. Новое значение (integer) должно быть в uiparam spi_getkeyboardspeed Возвращает скорость повтора клавиатуры. pvparam должен быть указателем на переменную типа integer spi_setkeyboardspeed Устанавливает скорость повтора клавиатуры. Новое значение (integer) должно быть в uiparam spi_langdriver не применяется spi_iconhorizontalspacing Устанавливает ширину сетки пиктограмм. Новое значение в пикселах (integer) должно быть в uiparam spi_iconverticalspacing Устанавливает высоту сетки пиктограмм. Новое значение в пикселах (integer) должно быть в uiparam spi_getscreensavetimeout Возвращает значение времени появления хранителя экрана в секундах. Указатель на возвращаемое значение (integer) должен быть в pvparam spi_setscreensavetimeout Устанавливает новое значение времени появления хранителя экрана в секундах. Новое значение (integer) должно быть в uiparam spi_getscreensaveactive Возвращает значение bool, активен ли сейчас хранитель экрана. Указатель на значение (bool) должен быть в pvparam spi_setscreensaveactive Устанавливает активность хранителя экрана true - включить, false - отключить. Значение (bool) должно быть в uiparam spi_getgridgranularity Возвращает значение шага разбиения сетки рабочего стола (desktop). Указатель на возвращаемое значение (integer) должен быть в pvparam spi_setgridgranularity Устанавливает значение шага разбиения сетки рабочего стола (desktop). Новое значение (integer) должен быть в uiparam spi_setdeskwallpaper Устанавливает обои на рабочем столе. pvparam должен содержать имя файла обоев в виде pchar строки spi_setdeskpattern Устанавливает текущий узор рабочего стола, заствляя windows cчитывать значение файла узора из строки pattern= файла win.ini. Таким образом, для смены узора сначала нужно изменить файл win.ini, а затем вызвать эту функцию spi_getkeyboarddelay Возвращает значение задержки перед повтором символа (repeat-delay) клавиатуры. Указатель на возвращаемое значение (integer) должен быть в pvparam spi_setkeyboarddelay Устанавливает значение задержки перед повтором символа (repeat-delay) клавиатуры. Новое значение (integer) должен быть в uiparam spi_geticontitlewrap Возвращает булевское значение, поддерживается ли перенос подписи под пиктограммой. Указатель на возвращаемое значение (bool) должен быть в pvparam spi_seticontitlewrap Устанавливает булевское значение, поддерживается ли перенос подписи под пиктограммой. Новое значение (bool) должно быть в uiparam spi_getmenudropalignment Возвращает булевское значение, слева или справа от пункта строки меню будет открыто подменю, если true, то слева; если false, то справа. Указатель на возвращаемое значение (bool) должен быть в pvparam spi_setmenudropalignment Устанавливает выравнивание выпадающих меню, true для правого выравнивания, false для левого выравнивания. Новое значение (bool) должен быть в uiparam spi_setdoubleclkwidth Устанавливает ширину прямоугольника двойного щелчка. Прямоугольник двойного щелчка - это прямоугольник, второй щелчок мыши вне которого не будет считаться за двойной щелчок. Возвращаемое значение (integer) должен быть в uiparam spi_setdoubleclkheight Устанавливает высоту прямоугольника двойного щелчка. Прямоугольник двойного щелчка - это прямоугольник, второй щелчок мыши вне которого не будет считаться за двойной щелчок. Возвращаемое значение (integer) должен быть в uiparam spi_geticontitlelogfont Возвращает информацию о текущем шрифте подписи под пиктораммами. uiparam должно содержать sizeof(tlogfont),pvparam должно содержать указатель на запись типа tlogfont spi_seticontitlelogfont Устанавливает текущий шрифт подписи под пиктораммами. uiparam должно содержать sizeof(tlogfont), pvparam должно содержать указатель на запись типа tlogfont с новыми характеристиками шрифта spi_setdoubleclicktime Устанавливает время, в течение которого второй щелчок после первого расценивается как двойной. Новое значение в миллисекундах в uiparam spi_setmousebuttonswap Меняет или делает прежними значения клавиш мыши. true переставить левую и правую кнопки мыши, false вернуть все на свои места. Новое значение (bool) должно быть в uiparam spi_getfasttaskswitch Данный флаг устарел spi_setfasttaskswitch Данный флаг устарел spi_getdragfullwindows Возвращает булевское значение, возможно ли перетаскивание максимизированного окна. spi_setdragfullwindows Устанавливает булевское значение, возможно ли перетаскивание максимизированного окна. Новое значение (bool) должно быть в uiparam. Указатель на возвращаемое значение (bool) должен быть в pvparam spi_getnonclientmetrics Возвращает параметры неклиентской области (строка заголовка, строка меню, полосы прокрутки и т.д.) неминимизированны окон. uiparam должно содержать sizeof(tnonclientmetrics), pvparam -указатель на запись типа tnonclientmetrics, поле cbsize которой также должно содержать sizeof(tnonclientmetrics) spi_setnonclientmetrics Устанавливает параметры неклиентской области (строка заголовка, строка меню, полосы прокрутки и т.д.) неминимизированны окон. uiparam должно содержать sizeof(tnonclientmetrics), pvparam -указатель на запись типа tnonclientmetrics, содержащую новую информацию, поле cbsize которой также должно содержать sizeof(tnonclientmetrics) spi_getminimizedmetrics Возвращает параметры минимизированных окон. uiparam должно содержать sizeof(tminimizedmetrics), pvparam -указатель на запись типа tminimizedmetrics, поле cbsize которой также должно содержать sizeof(tminimizedmetrics) spi_setminimizedmetrics Устанавливает параметры минимизированных окон. uiparam должно содержать sizeof(tminimizedmetrics), pvparam - указатель на запись типа tminimizedmetrics c новыми данными, поле cbsize которой также должно содержать sizeof(tminimizedmetrics) spi_geticonmetrics Возвращает параметры пиктограмм. uiparam должно содержать sizeof(ticonmetrics), pvparam -указатель на запись типа ticonmetrics, поле cbsize которой также должно содержать sizeof(ticonmetrics) spi_seticonmetrics Устанавливает параметры пиктограмм. uiparam должно содержать sizeof(ticonmetrics), pvparam -указатель на запись типа ticonmetrics с новыми данными, поле cbsize которой также должно содержать sizeof(ticonmetrics) spi_getworkarea Возвращает размеры рабочей области. Рабочая область - это область экрана не занятая панелью задач. Указатель на возвращаемое значение (trect) должен быть в pvparam spi_setworkarea Устанавливает размеры рабочей области. Указатель на устанавливаемое значение (trect) должен быть в pvparam spi_gethighcontrast Только для windows 95/98. Возвращает информацию о доступных параметрах highcontrast. Указатель на возвращаемое значение (thighcontrast) должен быть в pvparam spi_sethighcontrast Только для windows 95/98. Устанавливает информацию о доступных параметрах highcontrast. Указатель на новое значение (thighcontrast) должен быть в pvparam spi_getscreenreader Только для windows 95/98. Возвращает запущен ли "screen reviewer", true если запущен, false иначе. Указатель на возвращаемое значение (bool) должен быть в pvparam spi_setscreenreader Только для windows 95/98. Устанавливает, запущен ли "screen reviewer", true если запущен, false иначе. Возвращаемое значение (bool) должно быть в uiparam spi_getanimation Возвращает анимационные эффекты, ассоциированные с некоторыми действиями пользователя. Возвращаемое значение - указатель на запись tanimationinfo в pvparam, также установите поле cbsize этой записи и поле uiparam функции в sizeof(tanimationinfo) spi_setanimation Устанавливает анимационные эффекты, ассоциированные с некоторыми действиями пользователя. Новое значение - указатель на запись tanimationinfo в pvparam, также установите поле cbsize этой записи и поле uiparam функции в sizeof(tanimationinfo) spi_getfontsmoothing Возвращает включен ли режим сглаживания (с плавными цветовыми переходами) шрифта. Указатель на возвращаемое значение (bool) должен быть в pvparam spi_setfontsmoothing Устанавливает режим сглаживания (с плавными цветовыми переходами) шрифта true - включить, false - выключить. Возвращаемое значение (bool) должно быть в uiparam spi_sethandheld Для внутреннего использования. Приложения не могут использовать этот флаг spi_getlowpowertimeout Этот флаг не поддерживается 32-разрядными windows 95/98/nt spi_setlowpowertimeout Только для windows 95/98. ??? spi_getpowerofftimeout Этот флаг не поддерживается 32-разрядными windows 95/98/nt spi_setpowerofftimeout Только для windows 95/98. ??? spi_getlowpoweractive Этот флаг не поддерживается 32-разрядными windows 95/98/nt spi_setlowpoweractive Только для windows 95/98. ??? spi_getpoweroffactive Этот флаг не поддерживается 32-разрядными windows 95/98/nt spi_setpoweroffactive Только для windows 95/98. ??? spi_setcursors НЕ ОПИСАНО В ДОКУМЕНТАЦИИ spi_seticons НЕ ОПИСАНО В ДОКУМЕНТАЦИИ spi_getdefaultinputlang Возвращает описатель раскладки клавиатуры (keyboard layout) для языка ввода по умолчанию (default input language). В pvparam помещается указатель на переменную integer, в которую и будет помещен результат spi_setdefaultinputlang Устанавливает язык ввода по умолчанию. В pvparam помещается указатель на переменную integer, содержащую описатель новой раскладки клавиатуры (keyboard layout) spi_setlangtoggle Устанавливает клавиатурное сочетание для переключения между раскладками клавиатуры. uiparam и pvparam не используются. Для установки сочетания клавиш необходимо залезть в реестр и кое-что там поменять, а именно: ключу hkey_current_user\keyboard layout\toggle присвоить одно из следующих значений : "1" - alt+shift; "2" - ctrl+shift; "3" - none