第一种是API方式,按键精灵可以直接声明API,例如:
- Declare Function MessageBoxA lib "user32.dll" (ByVal Parent As Long, ByVal sMsg As String, ByVal sTitle As String, ByVal iFlag As Long) As Long
- MessageBoxA(0, "123", "123123", 0)
复制代码即可调用 MessageBoxA 函数,弹出一个消息框,这个函数是由 user32.dll 提供的(系统自带)。
系统提供了许多这样的函数,有效的利用起来,可以实现非常多的功能,但直接使用Win32API多有不便,按键也并非非常擅长调用Win32API的工具。
因此最佳的做法还是通过擅长Win32API开发的语言将功能封装好,再由按键调用。
对于C语言来说,这实在是太简单了,只需要几行代码,一个编译器即可。
- // 自定义一个导出函数
- __declspec(dllexport) int MyMB(char* sMsg)
- {
- MessageBox(0, sMsg, "C语言插件(API)", MB_OK);
- return 12345;
- }
复制代码对于很多人来说,用C语言开发可能开发工具 + 编译器等环境部署问题更麻烦一些,要多安装很多软件,非常烦人。
这里提供一个集成开发包,不需要安装,直接记事本或者你熟悉的编辑器写代码,然后双击编译,编译器用的TCC,很小巧。
- API.zip (, 下载次数:321)
代码写在 project.c 里,然后双击 build.bat 直接就能编译了,DLL文件名用记事本打开 build.bat 改一下就行,或者你自己改个名也可以。
编译后,把DLL放到脚本工程的附件里,然后声明即可调用:
- Declare Function MyMB lib "mydll.dll" (ByVal sMsg As String) As Long
- MyMB("asdasd")
复制代码这里做个广告,按键精灵X刚发布的时候,星月扩展库就是使用这种方式开发的,通过这个扩展库,能够实现一些非常炫酷的功能:
http://bbs.anjian.com/showtopic-664233-1.aspx