为了账号安全,请及时绑定邮箱和手机立即绑定

谁帮我解读下, 主要是想了解api函数到底怎么用啊!

谁帮我解读下, 主要是想了解api函数到底怎么用啊!

API
qq_花开花谢_0 2023-02-17 17:13:02
Option ExplicitPrivate Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _(ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, _ByVal fuWinIni As Long) As LongPrivate Sub Form_Load()Dim myval As Longmyval = SystemParametersInfo(97, True, CStr(1), 0)End SubPrivate Sub Label1_Click()End SubPrivate Sub Label2_Click()End SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If Text1.Text = "12345" And KeyCode = vbKeyReturn ThenDim myval As Longmyval = SystemParametersInfo(97, False, CStr(1), 0)EndEnd IfEnd Sub-----------------------------------------
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

允许获取和设置数量众多的windows系统参数 
返回值Long,非零表示成功,零表示失败。
参数 类型及说明 
uAction Long,指定要设置的参数。参考uAction常数表 
uParam Long,参考uAction常数表 
lpvParam Any,按引用调用的Integer、Long和数据结构。对于String数据,请用SystemParametersInfoByval函数。具体用法参考uAction常数表 
fuWinIni Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存在win.ini或注册表里,或同时保存在这两个地方。这个参数规定了在设置系统参数的时候,是否应更新用户设置参数。可以是零(禁止更新),或下述任何一个常数: 
SPIF_UPDATEINIFILE 更新win.ini和(或)注册表中的用户配置文件 
SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDATEINIFILE,将一条WM_WININICHANGE消息发给所有应用程序。否则没有作用。这调消息告诉应用程序已经改变了用户配置设置

uAction常数表:
SPI_GETACCESSTIMEOUT lpvParam是一个ACCESSTIMEOUT结构,其中要载入辅助访问特性计时信息。在调用函数之前,uParam必须设为ACCESSTIMEOUT结构的大小 
SPI_GETANIMATION lpvParam是一个ANIMATIONINFO结构,将在其中载入窗口最小化和恢复时的动画信息。不能在NT 3.51中使用 
SPI_GETBEEP lpvParam是一个Long型数据,若打开了响铃声,则设为TRUE 
SPI_GETBORDER lpvParam是一个Long型数据,用于接收一个乘数(倍数),对大小可变的窗口的边框尺寸进行控制 
SPI_GETDEFAULTINPUTLANG lpvParam是一个Long型数据,用于接收默认键盘布局的一个32位句柄。不能用于NT 3.51 
SPI_GETDRAGFULLWINDOWS lpvParam是一个Long型数据,如在整个窗口上拖动,就会设为TRUE。如果只拖出了一个矩形轮廓,则为FALSE。要求NT 4.0 或 Windows 95支持。其中,Windows 95必须有Plus!支持,或直接安装Windows 95 OSR2 
SPI_GETFASTTASKSWITCH lpvParam是一个Long型数据,如允许快速任务切换,则为TRUE。在Windows 95 和 NT 4.0中肯定是TRUE 
SPI_GETFILTERKEYS lpvParam是一个FILTERKEYS结构,用于装载与键盘有关的辅助访问特性信息 
SPI_GETFONTSMOOTHING lpvParam是一个Long型数据,如打开了边缘修饰特性(让字体更圆润),则为TRUE。只适用于 NT 4.0 和带 Plus! 支持的 Windows 95 
SPI_GETGRIDGRANULARITY lpvParam是一个Long型数据,会设为网格间隔尺寸值 
SPI_GETHIGHCONTRAST lpvParam是一个HIGHCONTRAST结构,用于装载与用户显示器有关的辅助访问特性信息。仅适用于Win95 
SPI_GETICONMETRICS lpvParam是一个ICONMETRICS结构,用于装载与图标比例及排列有关的信息。仅适用于Windows 95 及 NT 4.0 
SPI_GETICONTITLELOGFONT lpvParam指向一个LOGFONT结构,设置内容取决于图标标题采用的字体 
SPI_GETICONTITLEWRAP lpvParam是一个Long型数据,如允许对图标标题进行自动换行,则设为TRUE 
SPI_GETKEYBOARDDELAY lpvParam是一个Long型数据,设为键盘重复延时 
SPI_GETKEYBOARDPREF lpvParam是一个Long型数据,如用户更喜欢用键盘而不是鼠标,则设为TRUE。如这个参数为真,windows会显示出附加的键盘接口信息,只适用于win95 
SPI_GETKEYBOARDSPEED lpvParam是一个Long型数据,设为键盘的重复速率 
SPI_GETMENUDROPALIGNMENT lpvParam是一个Long型数据,若弹出式菜单左对齐(默认),则设为FALSE。否则为TRUE 
SPI_GETMINIMIZEDMETRICS lpvParam是一个MINIMIZEDMETRICS结构,用于装载与最小化窗口的比例及排列有关的信息。仅适用于win95 
SPI_GETMOUSE lpvParam是三元素Long数组的头一个条目,条目0设为用户配置MouseThreshold1字段,条目1设为MouseThreshold2字段,条目2设为MouseSpeed 
SPI_GETMOUSEKEYS lpvParam是一个MOUSEKEYS结构,要在其中装载与鼠标有关的辅助访问信息。不能在 NT 3.51中使用 
SPI_GETNONCLIENTMETRICS lpvParam是一个NONCLIENTMETRICS结构,要在其中装载有关字体和环境有关的信息;这些信息会在描绘窗口非客户区域时涉及到,如边框、标题等。只适用于win95 
SPI_GETSCREENSAVEACTIVE lpvParam指向一个整数;倘若屏幕保护程序处于活动状态,则设为TRUE;否则设为FALSE 
SPI_GETSCREENSAVETIMEOUT lpvParam指向一个整数;它设为屏幕保护延时(以秒为单位) 
SPI_GETSERIALKEYS lpvParam是一个SERIALKEYS结构,用于装载与输入设备(用于模拟键盘输入)有关的辅助访问特性信息。只适用于win95 
SPI_GETSHOWSOUNDS lpvParam是一个Long型数据,倘若应用程序应该用可视线索来代替声音,则设为TRUE。它的作用与GetSystemMetrics函数的SM_GETSHOWSOUNDS选项是相同的 
SPI_GETSNAPTODEFBUTTON lpvParam是一个Long型数据,倘若鼠标会自动移到新对话框的默认按钮,则设为TRUE。只适用于NT 4.0 
SPI_GETSOUNDSENTRY lpvParam是一个SOUNDSENTRY结构,用于装载让windows提供可视标志(而不是系统声音)时涉及的辅助访问特征信息。调用之前,必须将uParam设为SOUNDSENTRY结构的长度 
SPI_GETSTICKYKEYS lpvParam是一个STICKYKEYS结构,用于装载允许一名用户顺序按键(而不是同时按下)时涉及的辅助访问特征信息。同时按键的例子包括Shift+, Ctrl+, Alt+ 等。调用之前,必须将uParam设为STICKYKEYS结构的长度 
SPI_GETTOGGLEKEYS lpvParam是一个TOGGLEKEYS结构,要在其中装载按下一个开关键(NumLock,CapsLock,ScrollLock)后播放声音提示时涉及的辅助访问特征信息。windows会用一个不同的声音指出开或关状态。调用之前,必须将uParam设为TOGGLEKEYS结构的长度 
SPI_GETWORKAREA lpvParam是一个RECT结构,用于装载屏幕的工作区 
SPI_ICONHORIZONTALSPACING 如lpvParam为NULL,则uParam代表桌面图标新的水平间隔距离,以像素为单位 
SPI_ICONVERTICALSPACING 与SPI_ICONHORIZONTALSPACING相似,只不过指定图标的垂直间距 
SPI_LANGDRIVER lpvParam是一个字串,用于容纳新的语言驱动程序文件的名称 
SPI_SETACCESSTIMEOUT 与SPI_GETACCESSTIMEOUT的参数相同 
SPI_SETANIMATION 与SPI_GETANIMATION的参数相同 
SPI_SETBEEP uParam为TRUE时打开响铃,FALSE关闭 
SPI_SETBORDER uParam代表一个乘数,用于控制尺寸可变的的窗口边框的大小 
SPI_SETDEFAULTINPUTLANG 与SPI_GETDEFAULTINPUTLANG的参数相同 
SPI_SETDESKPATTERN 从注册表或win.ini中强制窗口恢复当前的桌面方案 
SPI_SETDESKWALLPAPER lpvParam代表一个字串,用于容纳作为桌面墙纸使用的一个位图文件的名称 
SPI_SETDOUBLECLICKTIME uParam代表连续两次单击被当作一次双击处理时需要间隔的时间(以毫秒为单位) 
SPI_SETDOUBLECLKHEIGHT uParam代表新的双击高度,可参考GetSystemMetrics函数的注解 
SPI_SETDOUBLECLKWIDTH uParam代表新的双击宽度,可参考GetSystemMetrics函数的注解 
SPI_DRAGFULLWINDOWS uParam为TRUE时打开全窗口拖动,否则为FALSE。仅适用于win95 
SPI_SETDRAGHEIGHT uParam代表一个矩形的高度(以像素为单位),用于决定拖动操作何时开始。只适用于win95 
SPI_SETDRAGWIDTH uParam代表一个矩形的宽度(以像素为单位),用于决定拖动操作何时开始。只适用于win95 
SPI_SETFASTTASKSWITCH uParam为TRUE时打开快速任务切换,FALSE则关闭 
SPI_FILTERKEYS 参数与 SPI_GETFILTERKEYS 相同 
SPI_SETFONTSMOOTHING uParam为TRUE时打开字体修饰(圆润)。只能在NT 4.0 和得到 Plus! 支持的 Win95(或 Windows 95 OSR2)中使用 
SPI_SETGRIDGRANULARITY uParam代表新的网格间距 
SPI_SETHIGHCONTRAST 参数与 SPI_GETHIGHCONTRAST 相同 
SPI_SETICONMETRICS 参数与 SPI_GETICONMETRICS 相同 
SPI_SETICONTITLELOGFONT lpvParam是一个LOGFONT结构,用于定义图标标题采用的字体。uParam指定LOGFONT结构的大小。如两者均为NULL,则采用系统启动时定义的字体 
SPI_SETICONTITLEWRAP uParam为TRUE时打开图标标题自动换行 
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 相同

 


查看完整回答
反对 回复 2023-02-20
?
杨魅力

TA贡献1811条经验 获得超6个赞

Declare 语句

用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。

语法 1

[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]

语法 2

[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]

Declare 语句的语法包含下面部分:

部分 描述 
Public 可选的。用于声明对所有模块中的所有其它过程都可以使用的过程。 
Private 可选的。用于声明只能在包含该声明的模块中使用的过程。 
Sub 可选的(但 Sub 或 Function 二者需选其一)。表示该过程没有返回值。 
Function 可选的(但 Sub 或 Function 二者需选其一)。表示该过程会返回一个可用于表达式的值。 
name 必需的。任何合法的过程名。注意动态链接库的入口处(entry points)区分大小写。 
Lib 必需的。指明包含所声明过程的动态链接库或代码资源。所有声明都需要 Lib 子句。 
libname 必需的。包含所声明的过程动态链接库名或代码资源名。 
Alias 可选的。表示将被调用的过程在动态链接库 (DLL) 中还有另外的名称。当外部过程名与某个关键字重名时,就可以使用这个参数。当动态链接库的过程与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用 Alias。如果该动态链接库过程中的某个字符不符合动态链接库的命名约定时,也可以使用 Alias。 
aliasname 可选的。动态链接库或代码资源中的过程名。如果首字符不是数字符号 (#),则 aliasname 是动态链接库中该过程的入口处的名称。如果首字符是 (#),则随后的字符必须指定该过程的入口处的顺序号。 
arglist 可选的。代表调用该过程时需要传递的参数的变量表。 
type 可选的。Function 过程返回值的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或 Variant,用户定义类型,或对象类型。 

arglist 参数的语法以及语法各个部分如下:

[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]

部分 描述 
Optional 可选的。表示参数不是必需的。如果使用该选项,则 arglist 中的后续参数都必需是可选的,而且必须都使用 Optional 关键字声明。如果使用了 ParamArray,则任何参数都不能使用 Optional。 
ByVal 可选的。表示该参数按值传递。 
ByRef 表示该参数按地址传递。 ByRef 是 Visual Basic 的缺省选项。  
ParamArray 可选的。只用于 arglist 的最后一个参数,表示最后的参数是一个 Variant 元素的 Optional 的数组。使用 ParamArray 关键字可以提供任意数目的参数。ParamArray 关键字不能与 ByVal、ByRef或 Optional 一起使用。 
varname 必需的。代表传给该过程的参数的变量名;遵循标准的变量命名约定。 
( ) 对数组变量是必需的。指明 varname 是一个数组。 
type 可选的。传递给该过程的参数的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)、Object、Variant、用户自定义的类型或对象类型。 

说明

对Function 过程而言,过程的数据类型决定其返回值的数据类型。可以在 arglist 之后使用 As 子句来指定函数返回值的数据类型。在 arglist 中,可以使用 As 子句来指定任何传给该过程的参数的数据类型。不单可以指定为任何标准数据类型,还可以在 arglist 中指定 As Any 来禁止类型检查,从而允许将任意数据类型传递给该过程。

空圆括号表示该 Sub 或 Function 过程没有参数,且 Visual Basic 应确保不会传递任何参数。在下面的示例中,First 不带任何参数。如果对 First 的调用中使用了参数,就会产生错误:

Declare Sub First Lib "MyLib" ()

如果带参数表,则每次调用该过程时都要检查参数的个数和类型。在下面的示例中,First 有一个 Long 参数:

Declare Sub First Lib "MyLib" (X As Long)

注意 在 Declare 语句的参数表中不能有定长的字符串;只有变长的字符串才能传给过程。定长的字符串可以作为过程参数使用,但在传递前都要被转换为变长的字符串。

注意 当所调用的外部过程需要一个值为 0 的字符串时,就要使用 vbNullString 常数。该常数与零长度字符串 ("") 是不相同的。

 


查看完整回答
反对 回复 2023-02-20
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信