使用vbs获取dll以在hta中工作

Getting a dll to work in hta with vbs

我正在尝试让 vbScript 在 hta 中工作。

当我运行单独使用vbs时,vbs工作正常,但是当我尝试在hta中使用它时,它无法加载dll文件。

我尝试过使用 regasm / codebase 来注册 dll,但这也无济于事。使用 regsvr32 不是一个选项,因为它不能 运行 作为计算机上的管理员。

我正在使用 ExecuteGlobal 将 vbs 文件导入到 hta 中,但我也尝试制作一个仅 运行s 来自 hta 的 vbs 的命令,但它仍然失败。

我是不是忽略了一些小事?

您可以使用 Regsvr32 注册 COM dll(通常,但也有例外,例如 RTF 5 和更高版本的控件)。您可以使用 RegAsm 注册伪装成 COM dll 的 .NET dll。 两者都需要管理员权限

*.NET dll 将核心 .NET dll 注册为 COM 处理程序,它将 COM 调用分派给 .NET 组件 DLL,这与通常没有任何阻碍的 COM 不同。

要在没有管理员身份的情况下注册 .NET dll,您需要从 RegAsm 导出为 reg 文件(非管理员可以这样做)。搜索 HKCR 并将其替换为 HKCU\Software\Classes。然后非管理员可以合并 reg 文件。

当告诉 windows 到 运行 一个 hta 时,它会自动假定为 32 位。让它在 64 位系统上工作使用 %WinDir%\System32\mshta.exe c:\page.hta

需要某种包装器或启动器来确保您运行使用正确的 mshta 版本