VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能调用的API封装库
API函数很强大,但是声明的时候比较繁琐。
我开发的封装库,包括窗口、键盘、鼠标、消息等常用功能。用户不需要添加API函数的声明,就可以用到API的功能。
在VBA、VB6的引用对话框中引用API.tlb文件,就可以用到其中的函数和方法,在VB.Net或C#项目中引用API.dll。
通过对象浏览器,可以看到每个类别的函数和方法列表:

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

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

课件下载:
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
提前打开一个记事本,然后运行上述脚本,在控制台窗口可以看到记事本的句柄。

VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能调用的API封装库的更多相关文章
- 通过实例简介python使用ctypes模块调用C语言动态库
看介绍python语言时,说它是胶水语言,可以调用其他语言.通过使用ctypes模块就可以调用C语言的动态库.下面先放上官方文档和几个比较好的博文. 1.官方文档:http://python.net/ ...
- VB、VBA、VBS的区别与联系
概念 VB Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的.模块化的.面向对象的.包含协助开发环境的事件驱动为机制的可视化程序设计语 ...
- VB6与VB.NET对照表
VB6与VB.NET对照表 VB6.0 VB.NET AddItem Object名.AddItem Object名.Items.Add ListBox1.Items.Add ComboBox1.It ...
- 删除重复的feature vba VS 删除重复的feature python
VBA: Sub deleteDuplicatedFeature() Dim app As IApplication Set app = Application Dim pMxDocument As ...
- VBS调用Windows API函数
Demon's Blog 忘记了,喜欢一个人的感觉 Demon's Blog » 程序设计 » VBS调用Windows API函数 « 用VBS修改Windows用户密码 在VB中创建和使用 ...
- Python Module_subprocess_子进程(程序调用)
目录 目录 前言 软件环境 认识subprocess Popen Constructor构造函数 Class Popen的参数 args 调用程序 调用Shell指令 stdinstdoutstder ...
- 使用python的Flask实现一个RESTful API服务器端[翻译]
最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文将会使用python的Flask框架轻松实现一个RESTful的服务 ...
- 使用Python调用Flickr API抓取图片数据
Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...
- Ruby操作VBA的注意事项和技巧(2):宏里调用和控制窗体以及窗体上的控件、不同workbook之间的宏互相调用
4.宏里调用并控制窗体以及窗体上的各种控件 1 Sub Criterion_Check() 2 If Workbooks.count = 0 Then '如果当前没有打开的工作薄的话需要发出警告 3 ...
随机推荐
- nginx重写常用写法
1.将http协议重写成https协议: (用户用http进行访问,但后端是https),则可添加80 http端口监听,然后进行https rewrite; server { listen ...
- Fedora、SuSE、Redhat、Ubuntu、Centos
想学Linux,但版本太多了,如Fedora.SuSE.Redhat.Ubuntu等,不免让人眼花缭乱,那么初学者该如何选择呢?也许很多人会不屑的说,Linux不就是个操作系统么.错!Linux不是一 ...
- luogu P4219 [BJOI2014]大融合
题解:原来LCT也能维护子树信息,我太Naive了 用LCT维护当前子树节点个数 具体做法维护siz[x]=当前Splay子树和指向当前Splay子树的虚边所代表的节点个数 auxsiz[x]=指向x ...
- JSP变量、方法和类的声明,JSP程序片,JSP表达式
参考文章 http://c.biancheng.net/view/1431.html http://c.biancheng.net/view/1433.html http://c.biancheng. ...
- 深入JVM(一)JVM指令手册
本文按照如下思维导图组织 1. 栈和局部变量操作 1.1 将常量压入栈的指令 aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类 ...
- 通过geopandas.sjoin()函数按多边形范围分割点
最近有一批点和多变型的数据,需要将点按照多边形的区域进行分割. 经过若干尝试,终于通过geopandas的sjoin函数得以实现. 这里首先感谢博主“张da统帅”的分享,使得本人获得该实现方法的灵感, ...
- IDA解析so文件异常(Binary data is incorrect maximum possible value is xx)
错误信息 Binary data is incorrect maximum possible value is 0 错误原因 so文件损坏 或者ida换成32 解决办法 重新获得so文件,或者调整id ...
- redis基本指令
1.键值相关命令 keys * 取出当前所有的key exists name 查看n是否有name这个key del name 删除key name e ...
- h5集成环信在线客服自定义窗口
自定义客服窗口从底部弹出 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- LibraryBuilder——从元器件datasheet到Library
LibraryBuilder是Cadence推出的元件库管理工具,可以从PDF自动创建器件的原理图符号及PCB封装. 软件可以从“吴川斌的博客”下载到. 这里大致记录一下创建元件库的过程,以Beagl ...