65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 INetCfg COM 接口探索网络配置

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.33/5 (2投票s)

2007年8月24日

CPOL

1分钟阅读

viewsIcon

46626

downloadIcon

852

获取电脑上已安装的网络驱动程序信息。

Screenshot - Driver_Found.jpg

引言

要获取已安装网络设备的信息,可以使用 COM 接口 INetCfg 和其他一些接口。

背景

我遇到的问题是证明某个特定的驱动程序是否已安装在电脑上。为此,我查看了微软的 snetcfg.exe 示例,但它对我不起作用。所以我研究了代码,发现它使用了 INetCfg COM 接口。但我没有找到任何良好的文档化的代码,所以我自己创建了一个类。

Using the Code

要使用此代码,必须安装 Microsoft 的 SDK 和 DDK(或 WDK),以便安装所有文件并设置正确的路径,以便可以找到所有文件。我在最重要的部分做了注释。

//DDK/WDK
#include <Netcfgx.h>
#include <comdef.h>
//Platform SDK
#include <devguid.h>

在使用它之前,您需要创建内部 COM 对象。如果不起作用,COM 错误可能会帮助您。

//Creating the COM-instance
m_NetCfg.Init( L"Codeproject Sample", false );

我的最终用途

是检查是否可以通过 COM 接口访问驱动程序。

HRESULT hr = m_NetCfg.FindComponentDisplayName( bs, csDisplay );
if( IS_OK( hr ) )
{
    cs.Format( "Driver found. Displayname is %s", csDisplay );
}
else
{
    cs.Format( "Error in NetCfg. COM-Message: %s", m_NetCfg.GetLastErrorMessage() );
}

在错误部分,您可以看到我使用的错误文本函数,用于增强可用性。

关注点

看到 COM 为我工作真是太有趣了,因为我在编写代码时。由于我在 CP 上没有找到太多关于 INetCfg 的信息,所以我决定发布这篇文章。我希望它有所帮助,因为我经常在这里找到帮助。

历史

  • 1.0:2007 年 8 月 23 日:初始发布。
© . All rights reserved.