VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能调用的API封装库

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

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

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

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

 

 

 

而且还有Spy、放大镜、APIViewer等开发工具。

 

 

API封装库的下载: 

API-Setup.zip

下载压缩包后,参考下图进行快速安装和使用:

 

课件下载:

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函数库可以被如下语言调用:

  • VBA
  • VB6
  • VBS
  • VB.NET
  • C#
  • Python
  • PowerShell

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

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

VBS

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

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

 

 

2025/1/17 非管理员身份部署API

为了满足无管理员身份的人士使用API,发布了免安装版,并且无需管理员权限即可部署。下面讲述具体步骤。

第一步: 推荐解压到 D:\API 文件夹下,如图所示。

 *注意:如果解压到了其他路径,请用记事本打开 API.reg 这个文件,将其中的路径  "file:///D:/API/API.dll" 全部替换为你的新路径,并且保存修改。否则注册不成功

 

第二步:注册tlb

注册步骤非常简单,双击 RegasmForCurrentUser.exe

出现黑色窗口,输入数字1 按下回车,即可注册完成。

 

第三步:VBA中添加引用

 VBA工程的引用对话框,点击 右侧的【浏览】

 

弹出如下对话框,过滤器选择“所有文件”,然后找到 API.tlb 选择【打开】

 

接下来就可以在VBA里面调用了。

第四步:写代码

Private Q As API.QRCode
Sub 生成二维码()
Set Q = New API.QRCode
Q.GenerateQRCode "https://www.cnblogs.com/ryueifu-VBA/p/8982192.html" '如果destination为空字符串,二维码发送到剪贴板。否则保存为本地图片文件
Q.GenerateQRCode "https://www.cnblogs.com/ryueifu-VBA/p/8982192.html", "D:\测试\博客园.bmp", -1, 20
End Sub

 

posted @ 2018-12-16 21:06  ryueifu  阅读(7674)  评论(1编辑  收藏  举报