systemparametersinfo详细

来源:互联网 发布:炉石传说秋日淘宝店 编辑:程序博客网 时间:2024/05/11 19:07

Windows-API-user32 SystemParametersInfo

应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。

我们先来看看SystemParametersInfo函数的定义和参数:

使用API函数之前必须先在程序中声明如下:

VB:

view plaincopy to clipboardprint?

  1. Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

C#

view plaincopy to clipboardprint?

  1. [DllImport("user32.dll", CharSet = CharSet.Auto)] 
  2. public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); 

其中各参数的意义如下表:

  • uAction Long,指定要设置的参数。参考uAction常数表

  • uParam Long,参考uAction常数表

  • lpvParam Any,按引用调用的Integer、Long和数据结构。

  • fuWinIni 这个参数规定了在设置系统参数的时候,是否应更新用户设置参数

  • 下面是部分uAction参数,和使用它们的方法:

  • 参数    意义和使用方法  

  • 6    设置视窗的大小,SystemParametersInfo(6, 放大缩小值, P, 0),lpvParam为long型

  • 17    开关屏保程序,SystemParametersInfo(17, False, P, 1),uParam为布尔型

  • 13,24    改变桌面图标水平和垂直间距,uParam为间距值(像素),lpvParam为long型

  • 15    设置屏保等待时间,SystemParametersInfo(15, 秒数, P, 1),lpvParam为long型

  • 20    设置桌面背景墙纸,SystemParametersInfo(20, True, 图片路径, 1)

  • 93    开关鼠标轨迹,SystemParametersInfo(93, 数值, P, 1),uParam为False则关闭

  • 97    开关Ctrl+Alt+Del窗口,SystemParametersInfo(97, False, A, 0),uParam为布尔

  • spi_seticontitlelogfont lpvparam是一个logfont结构,用于定义图标标题采用的字体。uparam指定logfont结构的大小。如两者均为null,则采用系统启动时定义的字体 spi_setkeyboarddelay uparam代表新的键盘重复延时

  • spi_setkeyboardpref 若uparam为true,表明用户相比键盘和鼠标更喜欢用前者。参考spi_getkeyboardpref

  • spi_setkeyboardspeed uparam代表新的键盘重复速率

  • spi_setlangtoggle 令窗口从系统注册表中重新装载热键信息,以便在键盘布局之间交换

  • spi_setlowpoweractive uparam为true时允许节能屏幕保护程序模式。只适用于win95

  • spi_setlowpowertimeout uparam代表新的节能屏幕保护程序延时。只适用于win95

  • spi_setmenudropalignment uparam为false时设置弹出菜单左对齐,true则右对齐

  • spi_setminimizedmetrics 参数与spi_getminimizedmetrics一样

  • spi_setmouse lpvparam是一个三元素整数数组的头一个条目,其中包含了鼠标设置。参考spi_getmouse

  • spi_setmousebuttonswap uparam为true时交换左右鼠标按钮的功能;如果为false,则使用原来的值

  • spi_setmousekeys 参数与spi_getmousekeys一样

  • spi_setnonclientmetrics 参数与spi_getnonclientmetrics一样

  • spi_setpenwindows uparam为true时载入笔窗口,false则卸载

  • spi_setpoweroffactive uparam为true时允许停电屏幕保护模式。只适用于win95

  • spi_setpowerofftimeout uparam代表新的停电屏幕保护程序延时。只适用于win95

  • spi_setscreenreader uparam为true时表示正在运行一个屏幕阅读程序。参考spi_getscreenreader

  • spi_setscreensaveactive uparam为true时激活屏幕保护程序;false表示禁止

  • spi_setscreensavetimeout uparam代表新的屏幕保护延迟时间,以秒为单位

  • spi_setserialkeys 参数与 spi_getserialkeys 相同

  • spi_setshowsounds uparam为true时允许窗口开启声音提示辅助访问特性。参考spi_getshowsounds

  • spi_setsnaptodefbutton 如鼠标应自动移到新对话框的默认按钮,则uparam为true。只适用于nt 4.0

  • spi_setsoundsentry 与 spi_getsoundsentry 相同

  • spi_setstickykeys 与 spi_getstickykeys 相同

  • spi_settogglekeys 与 spi_gettogglekeys 相同

  • spi_setworkarea 与 spi_getworkarea 相同


例:不用钩子也。用 SystemParametersInfo  禁止所有键盘的输入  :

Declare   Function   SystemParametersInfo   Lib   "User32"   Alias   "SystemParametersInfoA"   (ByVal   uAction   As   Long,   ByVal   uParam   As   Long,   lpvParam   As   Any,   ByVal   fuWinIni   As   Long)   As   Long  
  SystemParametersInfo   97,   -1,   0,   0   '所有按键锁定  
  SystemParametersInfo   97,   0,   0,   0   '恢复键盘锁定 

原创粉丝点击