哪个 ActiveX 控件(*.ocx 文件)处理 WMI?

Which ActiveX control (*.ocx file) handles WMI?

昨天我问了

虽然它工作正常,但我想知道为什么我不简单地使用 WMI API 来代替:如 this webpage about WMI API 中所述,这对于 Windows 相关的编程环境是可能的,处理ActiveX 对象(请参阅“开发人员受众”一章)。

我在 OpenEdge Progress-4GL 11.6 版中使用 AppBuilder 工作。这使得在 window 上添加 ActiveX 控件成为可能,但可用控件列表未提及任何 WMI(或 Windows 管理)相关控件,因此我假设我需要在我的电脑(或下载它),这是问题:

哪个 *.ocx 文件包含 WMI API(以及如何使用它)?

在对第一个答案发表评论后进行编辑:Appbuilder 的“工具”菜单

这是我的 AppBuilder 的“工具”菜单的样子:

提前致谢
多米尼克

首先,正如迈克所说,不要费心去走 ocx 路。

System.Management.ManagementScope class 位于 .Net System.Management.dll。 要使用 .Net dll,需要将其添加到程序集中。

AppBuilder 用户重要通知

一些开发人员开始他们的开发,使用 AppBuilder(快捷方式,开始开发,包含 C:\Progressx86\OpenEdge\bin\prowin32.exe ... -p _ab.p ...)。从这一点启动过程编辑器将不起作用,因为一些菜单项将会丢失。
为了解决这个问题,开始使用 C:\Progressx86\OpenEdge\bin\prowin32.exe(不带任何参数)。这将启动程序编辑器,其中包含所需的菜单项。

使用 Progress Developer Studio for OpenEdge,您只需添加它,然后就可以使用它。通过 GUI 添加程序集会产生以下 assemblies.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<references>
<assembly name="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</references>

有了这个 assemblies.xml,您可以使用:

DEFINE VARIABLE oMgmtScope AS System.Management.ManagementScope NO-UNDO.

要在没有 Progress Developer Studio for OpenEdge 的情况下添加程序集,您可以使用程序编辑器,菜单项 [工具/程序集参考]:

之后您可以添加引用: