SystemParametersinfo用法(二)
SPI_SETDOUBLECLKHEGHT:将ulParam参数的值设为双击矩形区域的高度。双击矩形区域是指双击中的第2次点击时鼠标指针必须落在的区域,这样才能记录为双击。
SPI_SETDOUBLECLKWIDTH:将ulParam参数的值设为双击矩形区域的宽度。
SPI_SETDRAGFULLWINDOWS:设置是否允许拖至最大窗口。参数uIParam指定为TRUE时表示为允许,为FALSE则不可。对于Windows 95,该标志只有在安装了Windows plusl才支持。
SPI_SETDRAGHEIGHT:设置用于检测拖拉操作起点的矩形区域的高度,单位为像素。参考GETSYSTEMMETRICS函数的nlndex参数中的SM_CXDRAG和SM_CYDRAG。
SPI_SETDRAGWIDTH:设置用于检测拖拉操作起点的矩形区域的宽度,单位为像素。
SPI_SETFASTTASKSWITCH:该标志己不再使用。以前版本的系统使用此标志来允许或不许进行Alt+Tab快速任务切换。对于Windows 95、Windows 98和Windows NT 4.0,通常都允许进行快速任务切换。参考SPI_SETSWITCHTASKDISABLE。
SPI_SETFILTERKEYS:设置FilterKeys易用特性的参数。参数pvParam必须指向包含新参数的FILTERKEYS结构,该结构中的cbSize成员和参数ulParam的值应设为sizeof(FILTERKEYS)。
SPI_SETFONTSMOOTHING:允许或禁止有字体平滑特性。该特性使用字体保真技术,通过在不同灰度级上涂画像素点来使得字体曲线显得更加平滑,为了允许有该特性,参数ulParam应设为TRUE值,否则为FALSE。对于Windows 95,只有在安装了Windows plusl才支持该标志。
SPI_SETFOREGROUNDFLASHCOUNT:用于Windows 98和Windows NT 5.0及以后版本。设置SetForegroundWindow在拒绝前台切换申请时闪烁任务拦按钮的次数。
SPI_SETFOREGROUNDLOCKTIMEOUT:用于Windows 98和Windows NT 5.0及以后版本。它用来设置在用户输入之后,系统禁止应用程序强行将自己进入前台期间的时间长度,单位为毫秒。参数pvParam设置这个新的时间限度值。
SPI_SETGRADIENTCAPTIONS:用于Windows 98和Windows NT 5.0及以后版本。允许或禁止窗口标题栏有倾斜效果。如果允许则将参数pvParam设置为TRUE,否则设为FALSE。有关倾斜效果方面更多信息,请参考GetSysColor函数。
SPI_SETGRIDGRANULARITY:将桌面缩放时网格的颗粒度值设置为参数ulParam中的值。
SPI_SETHANDHELD:内部使用,应用程序不应使用该值。
SPI_SETHIGHCONTRAST:用于Windows 95及以后版本、Windows NT 5.0及以后版本。设置HighContrast可访问特性的参数。参数pvParam必须指向HIGHCONTRAST结构,该结构包含新的参数。该结构中的cbSize成员及参数ulParam的值设为sizeof(HIGHCONTRAST)。
SPI_SETICONMETRICS:设置与图标有关的信息。参数pvParam必须指向包含新参数的ICONMETRICS结构,另外还要将参数ulParam和该结构中的cbSize成员的值设置为sizeof(ICONMETRICS)。
SPI_SETICONS:重新加载系统图标。参数ulParam的值应设为0,而pvParam参数应设为NULL。
SPI_SETICONTITLELOGFONT:设置用于图标标题的字体。参数ulParam指定为logfont结构的大小,而参数pvParam必须指向一个LOGFONT结构。
SPI_SETICONTITLEWRAP:打开或关闭图标标题折行功能。若想打开折行功能,则把参数ulParam设为TRUE,否则为FALSE。
SPI_SETKEYBOARDDELAY:设置键盘重复延迟。参数ulParam必须指定为0,1,2或3。其中0表示设置为最短延迟(大约 250ms)3,表示最大延迟(大约 1 秒)。与每个值对应的实际的延迟时间根据硬件情况有可能有些变化。
SPI_SETKEYBOARDPREF:用于Windows 95及以后版本、Windows NT 5.0及以后版本,设置键盘优先序。如果用户依赖键盘而不是鼠标,那么可将参数ulParam指定为TRUE,否则设为FALSE,并且要求应用程序显示而不隐蔽键盘接口。
SPI_SETKEYBOARDSPEED:设置键盘重击键速度。参数ulParam必须指定一个从0到31的值,其中0表示设置成最快速度(大约30次/秒),31表示设置为最低速度(大约2。5次/秒),实际的重速率与硬件有关,而且可能变动幅度高达20%。如果ulParam大于31,那么该参数仍设置为31。
SPI_SETLANGTOGGLE:为输入语言间切换设置热键集。参数ulParam和pvParam不用。该值通过读取注册表来设置键盘属性表单中的快捷键。在使用该标志之前必须设置注册表,注册表中的路径是"1"=Alt+shift,"2"=Ctrl+shift,"3"=none(无)。
SPI_SETLISTBOXSMOOTHSCROLLING:用于Windows 98和Windows NT 5.0及以后版本。允许或不许列表栏有平滑滚动效果。参数pvParam设置为TRUE表示允许有平滑滚动效果,为FALSE则表示禁止。
SPI_SETLOWPOWERACTIVE:激活或关闭低电压屏幕保护特性。参数ulParam设为1表示激活,0表示关闭。参数pvParam必须设为NULL。对于Windows 98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT.该标志只支持NT 5.0及以后版本的32位应用程序,不支持16位应用程序。
SPI_SETLOWPOWERTIMEOUT:用于设置低电压屏幕保护中的时间值(也称超时值,即在超过某一时间段后自动进行屏幕保护),单位为秒。uIParam参数用来指定这个新值。参数pvParam必须为NULL。对于Windows98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT该标志只支持NT 5.0及以后版本的32位应用程序,不支持16位应用程序。
SPI_SETMENUDROPALIGNMENT:设置弹出或菜单的对齐方式。参数ulParam指定为TRUE时表示是右对齐,FALSE时为左对齐。
SPI_SETMINIMIZEDMETRICS:设置与最小化窗口有关的数据信息,参数pvParam必须指向包含新参数的MINIMIZEDMETRICS结构。该结构中的cbSize成员与ulParam参数的值应设为sizeof(MINMIZEDMETRICS)。
SPI_SETMOUSE:设置鼠标的两个阀值和加速率。参数pvParam必须指向一个长度为3的数组,以指定这些值。详细请参考mouse_event。
SPI_SETMOUSEBUTTONSWAP:调换或恢复鼠标左右按钮的含义,为FALSE时表示恢复原来的含义。
SPI_SETMOUSEHOVERHEGHT:用于Windows 98和Windows NT 4.0及以后版本。设置鼠标指针停留区域的高度,以像素为单位。鼠标指针在此区域停留是为了让TrackMouseEvent产生一条WM_MUOSEHOVER消息,参数ulParam用来设置此高度值。
SPI_SETMOUSEHOVERTIME:用于Windows 98和Windows NT 4.0及以后版本。设置鼠标指针为了让TrackMouseEvent产生WM_MOUSEHOVER事件而在停留区域应停留的时间。该标志只有在将调用dwHoverTime参数中的HOVER_DEFAULT值传送到TrackMouseEvent时才使用。参数ulParam设置这个新的时间值。
SPI_SETMOUSEHOVERWIDTH:用于Windows 98和Windows NT 4.0及以后版本。设置鼠标指针停留区域的宽度,以像素为单位。参数ulParam设置该新值。
SPI_SETMOUSEKEYS:设置MouseKeys易用特性的参数。参数pvParam必须指向包含新参数的MOUSEKEYS结构。结构中的cbSize成员与参数ulParam的值应设为sizeof(MOUSEKEYS)。
SPI_SETMOUSESPEED:用于Windows NT 5.0及以后的版本和Windows 98,设置当前鼠标速度。参数pvParam必须指向一个1(最慢)至20(最快)之间的整数。缺省值是10。一般可以使用鼠标控制面板应用程序来设置该值。
SPI_SETMOUSETRAILS:用于Windows 95及以后版本:允许或禁止有MoouseTrails(鼠标轨迹)特性。该特性通过简短地显示鼠标光标轨迹,并迅速地擦除它们来提高鼠标的可见度。禁止该特性可将参数ulParam设为0或1,允许时,将ulParam设置为一个大于1的数值,该值表示轨迹中画出的光标个数。
SPI_SETNONCLIENTMETRICS:设置与非最小化窗口的非客区有关的数据信息,参数pvParam必须指向NONCLIENTMETRICS结构,该结构包含新的参数。其成员cbSzie和参数ulParam的值应设为sizeof(NONCLIENTMETRICS)。
SPI_SETPENWINDOWS;用于Windows 95及以后版本:指定是否加载笔窗口,当加载时,参数ulParam设为TRUE,不加载时为FALSE。参数pvParam为NULL。
SPI_SETPOWEROFFACTIVE:激活或关闭屏幕保护特性参数。ulParam设为1表示激活,0表示关闭。参数pvParam必须为NULL。对于Windows 98,该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT,该标志支持Windows NT 5.0及以后版本的32位应用程序,不支持16位应用程序。
SPI_SETPOWEROFFTIMEOUT:设置用于关闭屏幕保护所需的时间值(也称超时值)。参数ulParam指定该值。参数pvParam必须为NULL。对于Windows 98.该标志支持16位和32位应用程序。对于Windows 95,该标志只支持16位应用程序。对于Windows NT,该标志支持Windows NT 5.0及以后版本上的32位应用程序,不支持16位应用程序。
SPI_SETSCREENREADER;用于Windows 95及以后版本、Windows NT 5.0及以后版本,表示屏幕审阅程序是否运行。参数uiparm指定为TRUE表示运行该程序,FALSE则不运行。
SPI_SETSCREENSAVERRUNNING:用于Windows 95及以后版本,内部使用。应用程序不应该使用此标志SPI_SETSETSCREENSAVETIMEOUT:参数ulParam值为屏幕保护器时间限度值。该值是一个时间量,以秒为单位,在屏幕保护器激活之前,系统应该一直是空闲的,超过这个值就激活屏幕保护器。
SPI_SETSERIALKEYS:用于Windows 95及以后版本:设置SerialKeys易用特性的参数。参数pvParam必须指向包含新参数的SERIALKEYS结构,其成员cbSize和参数ulParam应设为sizeof(SERIALKEYS)。
SPI_SETSHOWSOUNDS:将ShowSounds易用特性设置为打开或关闭。参数ulParam指定为TRUE时表示打开,FALSE表示关闭。
SPI_SETSNAPTODEFBUTTON:用于Windows NT 4.0及以后版本、Windows 98。允许或禁止有snap-to-default-button(跳转至缺省按钮)特性。如果允许,那么鼠标光标会自动移至缺省按钮上,例如对话柜中的OK或"apply"按钮。参数ulParam设为TRUE表示允许该特性,FALSE表示禁止。
SPI_SETSOUNDSENTRY:设置SOUNDSENTRY易用特性的参数。参数pvParam必须指向SOUNDSENTRY结构,该结构包含新参数,其成员cbSize和参数ulParam的值应设为sizeof(SOUNDSENTRY)。
SPI_SETSTICKYKEYS:设置stickykeys可访问特性的参数。参数pvParam必须指向包含新参数的stickykeys结构,其成员cbSize和ulParam参数的值要设为sizeof(STICKYKEYS)。
SPI_SETSWITCHTASKDISABLE:用于Windows NT 5.0及以后版本,允许或禁止有Alt+Tab和Alt+Esc任务切换特性。参数ulParam设为1表示允许有该特性,设为0则表示禁止。缺省情况下是允许有任务切换特性的。
SPI_SETTOGGLEKEYS:设置togglekeys可访问特性的参数,参数PvParam必须指向TOGGLEKEYS结构,该结构中包含新的参数。其成员cbSize和参数ulParam的值要设为sizeof(togglekeys)。
SPI_SETWHEELSCROOLLLINES:用于Windows 98和Windows NT 4.O及以后版本。设置当鼠标轨迹球转动时
要滚动的行数,滚动的行数是由参数ulParam设置的,该行数是在鼠标轨迹球滚动,井且没有使用修改键时的滚动行数。如果该数值为0,那么不会发生滚动,如果滚动行数比可见到的行数要大,尤其如果是WHEEL_PAGESCROLL(#defined sa UINT_MAX),那么滚动操作应该被解释成在滚动条的下一页或上一页区点击一次。
SPI_SETWORKAREA:设置工作区域大小。工作区是指屏幕上没有被系统任务栏或桌面应用程序桌面工具遮盖的部分。参数pvParam是一个指针。指向RECT结构,该结构规定新的矩形工作区域,它是以虚拟屏幕坐标来表达的。在多显示器系统中,该函数用来设置包含特定矩形的显示器工作区域。如果PvParam为NULL,那么该函数将主显示器的工作区域设为全屏。
ulParam:与查询或设置的系统参数有关。关于系统级参数的详情,请参考uiAction参数。否则在没有指明情况下,必须将该参数指定为O。
pvParam:与查询或设置的系统参数有关。关于系统级参数的详情,请参考uiAction参数。否则在没有指明情况下,必须将该参数指定为NULL。
fWinlni:如果设置系统参数,则它用来指定是否更新用户配置文件(Profile)。亦或是否要将WM_SETTINGCHANGE消息广播给所有顶层窗口,以通知它们新的变化内容。该参数可以是0或下列取值之一:
SPIF_UPDATEINIFILE:把新的系统参数的设置内容写入用户配置文件。
SPIF_SENDCHANGED:在更新用户配置文件之后广播WM_SETTINGCHANGE消息。
SPI_SENDWININICHANGE与 SPIF_SENDCHANGE一样。
返回值:如果函数调用成功,返回值非零:如果函数调用失败,那么返回值为零。若想获取更多错误信息,请调用GetLastError函数。
备注:该函数一般与应用程序,例如控制面板一起使用。它可以允许用户对Windows任意进行定制。
盘布局名称是从对应于布局的16进制语言标识符引生而来的。例如,美国英语(U.S.Englisth)的语言标识符为" 0×0409",则主美国英语键盘布局命名为"00000409"其他的键盘布局如Dvotak等,命名为"00010409"、"00020409"等,关于此的列表参见MAKELANGID宏。
Wiows CE操作系统只支持下列uiAction值:
SPI_GETBATTERYIDLETIMEOUT:在WINDOWS CE没有因用户操作而挂起之前,干电池电源能坚持给系统供电的时间量可以使用该标志得到。以秒为单位,如果pvParam为0,那么该标志被忽略。
SPI_GETEXTERNALIDLETIMEOUT:在 Windows CE没有因用户操作而挂起之前,交流电源能坚持给系统供电时间的时间量可以使用该标志得到。参数pvParam指向一个DWORD类型变量,以返回时间值,单位为秒。如果pvParam为0,那么该标志被忽略。
SPI_GETMOUSE:检索鼠标的两个阈值和速度。
SPI_GETOEMINFO:返回一个字符串,该字符串包含型号和制造商名称。参数ulParam指定为pvParam参数中缓冲区的长度,在成功返回时,参数pvParam中包含Unicode字符集中的字符串。
SPI_GETPLATFORMTYPE:返回一个指定Windows CE设备类型的字符串,例如"H/PC"。参数ulParam规定pvParam参数缓冲区的长度,后者在成功返回时包含一个Unicode字符集中的字符串。该字符串允许象 H/PC EXPLORER一样的应用程序来确定设备类型。
SPI_GETWAKEUPDLETIMEOUT:在用户通知重新激活某个挂起的设备之后,可获取的Windows CE延缓响应的时间量。参数pvParam指向一个DWORD类型变量以返回时间值,单位为秒。如果pvParam值为0那么该标志被忽略。
SPI_GETWORKAREA:检索工作区大小。工作区是指没有被任务遮盖的屏幕部分。
SPI_SETBATTERYidletimeout:在Windows CE没有因用户操作而挂起之前,电池电源能坚持给系统供电的时间量可以使用该标志来设置。只要键盘或触摸屏处在活动状态(有输入),那么Windows CE操作系统及电池电源仍将工作。参数ulParam指定要设置的时间,单位为秒。如果ulParam设置为0,那么该标志被忽略。
SPI_SETEXTERNALIDLETIMEOUT:在Windows CE没有因用户操作而挂起之前,交流电源能坚持给系统供电的时间量可以使用该标志来设置。只要键盘或触摸屏幕处在活动状态,那么Windows CE操作系统及AC电源仍将工作。参数ulParam指定要设置的时间,单位为秒。如果ulParam设为0,那么该标志被忽略。SPL_SETMOUSE:设置鼠标的两个阈值和速度。
SPI_SETWAKEUPIDLETIMEOUT:在用户通知重新激活某个挂起的设备之后,Windows CE延缓响应的时间长度量可使用该标志来设置。参数ulParam指定这个时间量,单位为秒,如果ulParam设置为0,那么该标志被忽略。
SPI_SETWORKAREA设置工作区大小,工作区是指没有被任务条遮盖的屏幕部分。如果用来获取平台类型或OEM信息串的pvParam缓冲区太小,那么该函数会调用失败,并出现错误值ERROR_INSUFFICENT_BUFFER。Windows CE只支持该函数的UNICODE版。Windows CE不支持参数fWinlni的取值为SPIF_SENDWININICHANGE的情形。