一个简单的 DWX 应用示例
在这个示例中,您可以用 vbs 脚本解压一个 rar 文件。在系统里没有安装任何解压软件的情况下,使用 DWX 导出并调用 UnRAR.dll 中包装的函数,实现文件解压缩功能。 UnRAR.dll 不需要安装或注册,它是 RARLAB 发布的一个免费的供第三方调用的链接库文件,您可以去 RAR 官网 下载一份。示例程序运行需要:
- 系统中已成功注册 DynamicWrapper
- 必要的 unRAR.dll 支持文件
- 待解压的 examples.rar 文件
- 最后将以下 vbs 代码复制并保存在 your.vbs 文本文件里
'vbs 调用 unrar.dll 解压缩示例 set FSO = createobject("Scripting.FileSystemObject") '创建 FSO 文件对象 set DWX = CreateObject("DynamicWrapperX") DWX.Register "user32.dll", "MessageBoxW", "i=hwwu", "r=l" curPath = FSO.GetFolder(".").Path unRar = curPath & "\UnRAR64.dll" '必要的支持文件 rarfile = curPath & "\examples.rar" '待解压的文件 if FSO.FileExists(unRar) <> 0 then with DWX .Register unRar, "RAROpenArchiveEx", "i=p", "r=p" .Register unRar, "RARReadHeaderEx", "i=pp", "r=p" .Register unRar, "RARProcessFileW", "i=huww", "r=l" .Register unRar, "RARCloseArchive", "i=p", "r=l" end with RAROpenDataEx = DWX.MemAlloc(336, 1) '定义文件打开结构体 frarfile = DWX.StrPtr(rarfile, "w") DWX.NumPut frarfile, RAROpenDataEx, 8, "p" '设置文件路径 DWX.NumPut 1, RAROpenDataEx, 16, "u" '设置文件打开模式 Handle = DWX.RAROpenArchiveEx(RAROpenDataEx) '文件打开 headData = DWX.MemAlloc(9280, 1) Do While (0 = DWX.RARReadHeaderEx(Handle, headData)) DWX.RARProcessFileW Handle, 2, "", "" Loop DWX.RARCloseArchive Handle '文件关闭 DWX.MemFree headData '释放内存 DWX.MemFree RAROpenDataEx DWX.MessageBoxW 0, "文件解压成功!", "提示", 64 else DWX.MessageBoxW 0, "当前路径缺少 UnRAR64.dll 文件", "错误", 48 end if