如何使用api
2014-01-28
用于在模块级别中声明对动态链接库 (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,用户定义类型,或对象类型。
比如我要使用sendmessage这个API函数,可以这样写:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
VB有个API浏览器,里面包含很多WIN32 API函数 可以从VB的外接程序-外接程序管理器-vb6 api viewer选择
先声明一下定义就可以使用了
例如
'在模块中声明函数或过程,注意这里的Sleep的首字母必须大写!
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
以后就可以在代码中使用
Sleep 100 '休眠100毫秒
Sleep 300 '休眠300毫秒