API函数很强大,但是声明的时候比较繁琐。

我开发的封装库,包括窗口、键盘、鼠标、消息等常用功能。用户不需要添加API函数的声明,就可以用到API的功能。

在VBA、VB6的引用对话框中引用API.tlb文件,就可以用到其中的函数和方法,在VB.Net或C#项目中引用API.dll。

通过对象浏览器,可以看到每个类别的函数和方法列表:

https://pan.baidu.com/s/12kEHWWEdkSTp_v1i0OIqGA

C#调用范例下载:

https://pan.baidu.com/s/1SMPFQqp1q0RFuYjgimdREg

免费视频课程:

VBA编程使用API实现自动化视频课程(第一季)_共20课时-51CTO学院 http://edu.51cto.com/course/16212.html

VBA编程使用API实现自动化视频课程(第二季) https://edu.51cto.com/course/18992.html

目前,API函数库可以被如下语言调用:

  • VB.NET
  • Python
  • PowerShell
  • 其中,VBA VB6 VB.Net C#通过“引用”对话框可以把API函数库引入到项目中。

    下面分别讲解在VBS,Python,PowerShell中调用API函数库的方法。

    VBS在记事本里编辑,通过CreateObject后期创建对象,例如:

    Python

    需要用pip install pythonnet安装clr模块。然后在py文件中输入如下内容:

    import clr
    clr.FindAssembly("C:\Program Files\API\API.dll")
    clr.AddReference("API")
    import API
    if __name__ == '__main__':
        IOther=API.Other()
        IWindow=API.Window()
        IOther.Delay(3000)
        hExcel= IWindow.FindWindow("xlmain",None)
        IOther.About(hExcel,"API","Ryueifu")
        print(hExcel)

    提前打开Excel,然后运行上述py程序,会在Excel窗口中弹出一个关于对话框。说明调用API成功

    PowerShell

    PowerShell可以调用.NET语言生成的dll,当然可以调用API.dll。

    在PowerShell脚本文件中输入如下4行代码:

    [void][System.Reflection.Assembly]::LoadFile("C:\Program Files\API\API.dll")
    $IWindow=New-Object API.Window
    $hNotepad=$IWindow.FindWindow("Notepad","201909PS.txt - Notepad")
    Write-Host $hNotepad

    提前打开一个记事本,然后运行上述脚本,在控制台窗口可以看到记事本的句柄。

    2022/7/16 非管理员权限部署API

    如果你只想为当前用户使用API函数库,需要下载API.zip携带版

    https://files.cnblogs.com/files/ryueifu-VBA/API.zip?t=1657062488

    第一步:将API.zip下载到D:根目录,然后右键菜单中选择“解压到API”

    然后在D:\API文件夹中可以看到如下几个文件。

    第二步:双击API.reg,提示导入注册表,选择“是”

    如果您的系统是64位,Office VBA是32位,那么还需要双击API_x86.reg。

    第三步:启动Excel VBA,在工程的引用对话框中,添加API.tlb

    第四步:插入一个模块,输入如下测试代码:

    Sub Test()
    Dim O As API.Other
    Set O = New API.Other
    O.About Application.Hwnd, "你好", "API"
    End Sub

    如果上述程序可以正常运行,说明部署成功。

    如果你的电脑没有D:\或者想部署到其他路径,请用记事本编辑两个.reg文件,将其中的路径D:/API/API.dll 全部替换为您电脑的实际路径。

    保存修改后,再次导入即可。