|
API 示例
API(应用程序编程接口)是 DLL 文件中所包含的一种功能。这些功能
通常由 Windows 和其他应用程序使用,但也可以被最终用户所使用。
注释: 使用 API 调用请多加小心。要注意保存以避免丢失所做的工作。
由于这种功能的设计目的是由系统和应用程序所调用,所以许多错误捕获功能并未实施。
这意味着使用 API 调用时,有可能导致系统挂起、崩溃或其他不可预测的副作用。
下面的示例说明了如何使用基本的 API。已经在 Windows98 和 Excel 中测试通过。
使用这些功能的方式很多,程序员可以自行确定哪种方式更为合适。
检查所有的驱动器盘符
下面的示例使用“GetLogicalDriveStrings”函数循环通过所有逻辑驱动器。
逻辑驱动器是指软盘、硬盘、CD 驱动器及映射的网络共享。
Option Explicit
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Sub Get_Logical_Drive_String()
Dim DrvString As String
Dim TotDrvs As Long
Dim Counter As Integer
'变量“TotDrvs”返回字符串中总的字符数
TotDrvs = GetLogicalDriveStrings(0&, DrvString)
'变量“DrvString”是为存放该字符串而创建的缓冲区
DrvString = String(TotDrvs - 1, " ")
'再次调用“GetLogicalDriveStrings”,用有效数据填充字符串
'示例 "a:\ c:\ d:\ e:\ "
TotDrvs = GetLogicalDriveStrings(TotDrvs, DrvString)
'解析整个返回的字符串,并在“msgbox”中显示每个盘符
For Counter = 1 To TotDrvs Step 4
MsgBox Mid(DrvString, Counter, 3)
Next Counter
End Sub
返回视频分辨率
下面的示例代码返回当前的屏幕视频分辨率并在消息框中显示信息。
Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
'“GetSystemMetrics”中将用到的常数
Const SM_CXSCREEN = 0 ' 屏幕宽度
Const SM_CYSCREEN = 1 ' 屏幕高度
Sub Get_System_Metrics()
Dim XVal As Long, YVal As Long
YVal = GetSystemMetrics(SM_CYSCREEN)
XVal = GetSystemMetrics(SM_CXSCREEN)
MsgBox "您的屏幕分辨率为:" & XVal & " X " & YVal
End Sub
提取登录名称
下面的代码将返回当前登录的用户名。
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Get_User_Name()
Dim lpBuff As String * 25
Dim ret As Long, UserName As String
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
MsgBox UserName
End Sub
返回长路径和文件名的短路径名
下面的函数获取“长文件名”,返回“短文件名”,并在消息框中
显示两种名称。
Private Declare Function GetShortPathName Lib "KERNEL32.DLL" Alias "GetShortPathNameA" _
(ByVal lpctstrLongName As String, _
ByVal lptstrShortName As String, _
ByVal bufLen As Long) As Long
Sub Get_Short_Name()
Dim LongStr As String, ShortStr As String
Dim lStrLen As Long, lRet As Long
'变量“LongStr”为指向某一文件的任意长度文件名或变量
LongStr = ThisWorkbook.FullName
lRet = GetShortPathName(LongStr, ShortStr, lStrLen)
'可以创建一个与返回的字符串长度相同的缓冲区,这样将不必再截去缓冲区左侧即可获取字符串
ShortStr = String(lRet, " ")
lRet = GetShortPathName(LongStr, ShortStr, lRet)
MsgBox LongStr & " 被转换为 " & ShortStr
End Sub
返回计算机名称
下面的代码示例说明如何使用“GetComputerName”函数获取计算机名称。
Option Explicit
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Get_Computer_Name()
Dim Comp_Name_B As String * 255
|
|