设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2146|回复: 2
打印 上一主题 下一主题

[转帖]微软的API示例,很实用的

[复制链接]
跳转到指定楼层
1#
发表于 2004-8-26 00:49:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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

   
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-8-26 17:27:00 | 只看该作者
不错!!
3#
发表于 2009-4-17 21:07:27 | 只看该作者
谢谢斑竹分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-6 06:47 , Processed in 0.085998 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表