vba - 在 VBA 和 VBS 中创建对象

标签 vba vbscript

最近在尝试访问中windows防火墙的属性和方法我引用了hnetcfg.dll并且能够为 inetfwMGr 等对象标注变量, inetfwPolicy等等

但我无法根据需要为它们创建对象,例如set obj = new inetfwmgr 行不通

阅读周围我了解到我需要使用CreateObject("hnetcfg.FwMgr") 进一步进步。

我想知道的是如何了解可以从 VBA 中的给定 dll 创建哪些对象。看引用here .我找不到任何线索表明您需要创建一个对象 hnetcfg.FwMgr能够继续。为什么FwMgr ?如何发现是否有其他对象是从 hnetgfg.dll 创建的?此信息是否应该是我未见过的引用文献中的信息,还是通过查看 hnetcfg 的属性而隐含的信息? ?

任何见解将不胜感激。谢谢

最佳答案

我对这个dll一无所知,但我认为这会有所帮助。

您可以使用 CreateObject,从长远来看,您可能希望增加可移植性。这称为“后期绑定(bind)”。另一方面,如果您设置了对 dll 的引用,则可以标注并创建新的 NetFwLibLib 对象(“早期绑定(bind)”)。这里的优点是您将获得智能感知并可以在对象浏览器中检查其属性。下面是一些用 Excel VBE 编写的代码:

Sub test()
Dim test As NetFwTypeLib.INetFwMgr
Set test = New NetFwTypeLib.INetFwMgr
With test
    .CurrentProfileType = ...
End With
End Sub

此外,您可以使用对象浏览器检查 FwTypeLib。只需单击 F2(在本例中为 Excel 的 VBE),您将看到如下内容:

enter image description here

关于vba - 在 VBA 和 VBS 中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706932/

相关文章:

excel - 来自父级的 "TypeOf...Is Child"导致 Excel 文件损坏

vbscript并检查是否为空

html - 使用 html onclick、ASP 调用 VBScript 子例程/函数

datetime - VBScript ISO8601

excel - 如果在工作表 1 A 列中找到值,则需要将工作表 2 的整行粘贴到工作表 3

loops - Else If 是否为 FileExists()

vbscript - 通过 VBScript 了解用户是否具有管理权限的最佳方法

windows - 在 BGInfo "Variable is undefined: ' WScript 中使用 VBScript 时出错“”

excel - 通过电子邮件搜索将 Excel 2003 中的数据行复制并粘贴到不同的工作表

vba - 从以特定字符开头和结尾的字符串中提取文本