从 VBA 访问 Windows API

AutoCAD ActiveX/VBA

 
从 VBA 访问 Windows API
 
 
 

Windows® API 过程对于大多数 Windows 应用程序可用。这些程序可用于扩展应用程序的功能。

通过 Windows API,用户可以获取当前系统的信息,例如系统安装了或运行了哪些其他程序、信息位于系统的什么地方以及系统当前的控制设置是什么;还可以访问游戏杆、多媒体和声音控制。这些任务只是 Windows API 提供的众多功能中的一小部分。

要使用某个 Windows API,首先必须在应用程序中声明该 API,此操作通过 Declare 语句完成。Declare 语句需要以下几项信息:

  • 动态链接库(DLL,其中包含要使用的过程)的名称
  • 出现在 DLL 中的过程名称
  • 需要在应用程序中使用的过程名称
  • 过程需要接收的参数
  • 返回值的数据类型(如果调用的过程是函数)

可以将 Declare 语句放在任何 VBA 模块中。如果将其放在标准模块中,应用程序中的所有模块都可以使用该程序,除非用户使用关键字 Private 限制其作用域。如果将 Declare 语句放在类或窗体模块中,则只有该模块能使用此程序。声明程序后,在应用程序中可以像调用其他程序一样调用此程序。

要想很好地使用 Declare 语句是比较难的。用户常常会使用错误的 Declare 语句,导致严重后果。因此,在试图使用新的 Declare 语句之前,请务必保存活动应用程序中的所有信息。

为了帮助用户使用 Declare 语句,Microsoft 提供了一个文件,其中列出了许多常用声明,该文件名称为 Win32api.txt,包含在 Visual Basic 6 和 Office 中。用户可以在该文件中搜索所需的过程,并将提供的 Declare 语句复制到自己的代码中。

Microsoft VBA 文档包含了关于 Declare 语句的详细信息以及其使用样例。Microsoft Windows API 参考包含在 Mircrosoft Developer Network CD 订阅中,它提供了 Windows API 中所有可用程序的参考。Dan Appleman 撰写的《Visual Basic Programmer's Guide to the Win32 API》一书对于 Visual Basic 6 程序员也非常有用。