在VBA和VBS中创建对象

ooo*_*ooo 4 vbscript vba

最近,在试图访问的性能与Windows防火墙的方法我引用hnetcfg.dll,并能维变量的状物体inetfwMGr,inetfwPolicy等等.

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

读书我知道我需要用来
CreateObject("hnetcfg.FwMgr")
进一步发展.

我想知道的是如何知道哪些对象可以在VBA中从给定的dll创建.看看这里的参考.我找不到一条线索来表明你需要创建一个对象hnetcfg.FwMgr才能继续.为什么FwMgr?如何发现是否有其他对象可以创建hnetgfg.dll?这些信息是否应该是我没有看到的参考文献,或者是某些查看属性的隐含信息hnetcfg

任何见解都会受到赞赏.谢谢

Dou*_*ncy 5

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

您可以使用CreateObject,从长远来看,您可能希望提高可移植性.这称为"后期绑定".另一方面,如果您已设置对dll的引用,则可以标注并创建新的NetFwLibLib对象("早期绑定").这里的优点是你将获得intellisense并可以在对象浏览器中检查它的属性.这是Excel VBE中编写的一些代码:

Sub test()
Dim test As NetFwTypeLib.INetFwMgr
Set test = New NetFwTypeLib.INetFwMgr
With test
    .CurrentProfileType = ...
End With
End Sub
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述