简介
DllCall 一直是 AHK 中比较高级而又困难的功能。
高级在于, AHK 除了其自带的命令与函数外,其它几乎所有功能都需要靠调用系统 API 或三方 Dll 来实现,而 DllCall 则提供了调用系统 API 或三方 Dll 的能力。
困难在于,绝大部分人,很难看懂并搞清海量的参数类型。
所以,我写了这个工具,可以自动识别参数类型,并一键生成 DllCall 代码。
用法
非常简单,例如你想调用系统的 MessageBox 函数,只需打开 此函数的 MSDN 页面 ,将 Syntax 中的内容复制到工具中即可自动生成 AHK 代码。
原理与局限
工具会自动解析微软的函数定义,然后与257种已知常用类型进行匹配。
如果没有在常用类型中找到对应项,则会根据类型名、参数名等多种条件进行猜测。
但猜测并不能100%成功。这是因为,微软可能定义了数千种类型,将其一一囊括并与 AHK 类型对应是一件不太现实的事情。
好消息是,我手动测试了40+以上的函数,实际准确率至少在90%,也就是说,参数类型完全填对的占36+。
那几个错误的呢,其实也不算完全错误,只是其中部分参数类型工具实在猜不出来,被标记为了未知,需要人工确定而已。
下载与相关
下载地址:
- 可以将 Github 链接复制到 这个工具 中进行下载
- 同时它也集成在 SciTE4AutoHotkey 增强版 的工具栏中。
更新日志
2022.04.18
- 增强了识别能力
- 优化了高分屏下的显示
- 可以生成 Structor 用的类型列表文件
2022.03.31
- 基于*靠左解析重构代码
- 修复*靠右解析造成的错误
- 增加类型到257种
2022.03.25
- 增加类型到210种
- 多行语法下进行缩进
- 对可信度较低的猜测进行警告
- 改进 Out + Str 类型变量的创建
- 改进返回值类型的提取
- 改进错误记录
相关推荐
- Structor 这是一个可以计算并生成结构体的工具,本工具的界面就是抄的它。
- Windows Data Types for AHK 这是一个可以查询一些类型信息的工具。我在本工具完成度90%左右时发现的它,所以类型分类我俩是各自独立完成的,因此也可以用这个工具的结果进行相互印证。
最后感谢 @Tebayaki 简单明了的解释清楚了某些类型的问题。
不支持一下,我都不好意思点进来!
Like+9999999999999999999999999999999999999
?小白福音,感谢大佬
顶
非常实用的工具!?
?已集成
这个厉害
???
哭了,这是我半年前就想拥有的工具。?
666
感谢大佬分享,感觉是高级功能的实用工具,无论是实用还是学习,都非常棒!?
这个牛逼的很,下载收藏了
厉害
谢谢大神分享,学习
厉害啊