社区
其它技术问题
帖子详情
请高手指点:如何检测网卡(硬件)是否存在?
lhydnxs
2005-02-20 11:35:15
最近编程碰到一个问题.在注册表中可以得到网卡ComponentId,DriverDesc,NetCfgInstanceId这些类似的信息,能否根据这些信息来检测网卡硬件是否存在呢?如果不能,要用什么方法呢?
请高手指点.我用的是VC6
...全文
252
4
打赏
收藏
请高手指点:如何检测网卡(硬件)是否存在?
最近编程碰到一个问题.在注册表中可以得到网卡ComponentId,DriverDesc,NetCfgInstanceId这些类似的信息,能否根据这些信息来检测网卡硬件是否存在呢?如果不能,要用什么方法呢? 请高手指点.我用的是VC6
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
「已注销」
2005-02-23
打赏
举报
回复
?
BOOL ClassNetSetting::GetSettingOfWinNT()
{
LONG lRtn;
HKEY hMainKey;
TCHAR szParameters[256];
//获得域名,主机名和是否使用IP路由
_tcscpy(szParameters,_T("SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters"));
lRtn = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,szParameters,0,KEY_READ,&hMainKey);
if(lRtn == ERROR_SUCCESS)
{
DWORD dwType,dwDataSize = 256;
::RegQueryValueEx(hMainKey,_T("Domain"),NULL,&dwType,(LPBYTE)m_szDomain,&dwDataSize);
dwDataSize = 256;
::RegQueryValueEx(hMainKey,_T("Hostname"),NULL,&dwType,(LPBYTE)m_szHostName,&dwDataSize);
dwDataSize = 256;
// BYTE szBuf[16];
::RegQueryValueEx(hMainKey,_T("IPEnableRouter"),NULL,&dwType,(LPBYTE)&m_IPEnableRouter,&dwDataSize);
}
::RegCloseKey(hMainKey);
//获得IP地址和DNS解析等其他设置
HKEY hNetCard = NULL;
m_TotalNetCards = GetMacAddress(m_MacAddr);
lRtn = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards"),0,KEY_READ,&hNetCard);
if(lRtn != ERROR_SUCCESS)//此处失败就返回
{
if(hNetCard != NULL)
::RegCloseKey(hNetCard);
return FALSE;
}
DWORD dwSubKeyNum = 0,dwSubKeyLen = 256;
//得到子键的个数,通常与网卡个数相等
lRtn = ::RegQueryInfoKey(hNetCard,NULL,NULL,NULL,&dwSubKeyNum,&dwSubKeyLen,
NULL,NULL,NULL,NULL,NULL,NULL);
if(lRtn == ERROR_SUCCESS)
{
m_TotalNetCards = dwSubKeyNum;//网卡个数以此为主
LPTSTR lpszKeyName = new TCHAR[dwSubKeyLen + 1];
DWORD dwSize;
for(int i = 0; i < (int)dwSubKeyNum; i++)
{
TCHAR szServiceName[256];
HKEY hNewKey;
DWORD dwType = REG_SZ,dwDataSize = 256;
dwSize = dwSubKeyLen + 1;
::RegEnumKeyEx(hNetCard,i,lpszKeyName,&dwSize,NULL,NULL,NULL,NULL);
lRtn = ::RegOpenKeyEx(hNetCard,lpszKeyName,0,KEY_READ,&hNewKey);
if(lRtn == ERROR_SUCCESS)
{
lRtn = ::RegQueryValueEx(hNewKey,_T("Description"),NULL,&dwType,(LPBYTE)m_Cards[i].szDescription,&dwDataSize);
dwDataSize = 256;
lRtn = ::RegQueryValueEx(hNewKey,_T("ServiceName"),NULL,&dwType,(LPBYTE)szServiceName,&dwDataSize);
if(lRtn == ERROR_SUCCESS)
{
TCHAR szNewKey[256];
wsprintf(szNewKey,_T("%s\\Interfaces\\%s"),szParameters,szServiceName);
HKEY hTcpKey;
lRtn = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,szNewKey,0,KEY_READ,&hTcpKey);
if(lRtn == ERROR_SUCCESS)
{
dwDataSize = 256;
::RegQueryValueEx(hTcpKey,_T("DefaultGateway"),NULL,&dwType,(LPBYTE)m_Cards[i].szGateWay,&dwDataSize);
ProcessMultiString(m_Cards[i].szGateWay,dwDataSize);
dwDataSize = 256;
::RegQueryValueEx(hTcpKey,_T("IPAddress"),NULL,&dwType,(LPBYTE)m_Cards[i].szIpAddress,&dwDataSize);
ProcessMultiString(m_Cards[i].szIpAddress,dwDataSize);
dwDataSize = 256;
::RegQueryValueEx(hTcpKey,_T("SubnetMask"),NULL,&dwType,(LPBYTE)m_Cards[i].szIpMask,&dwDataSize);
ProcessMultiString(m_Cards[i].szIpMask,dwDataSize);
dwDataSize = 256;
::RegQueryValueEx(hTcpKey,_T("NameServer"),NULL,&dwType,(LPBYTE)m_Cards[i].szDNSNameServer,&dwDataSize);
}
::RegCloseKey(hTcpKey);
}
}
::RegCloseKey(hNewKey);
m_Cards[i].szMacAddr[0] = m_MacAddr[i].b1;
m_Cards[i].szMacAddr[1] = m_MacAddr[i].b2;
m_Cards[i].szMacAddr[2] = m_MacAddr[i].b3;
m_Cards[i].szMacAddr[3] = m_MacAddr[i].b4;
m_Cards[i].szMacAddr[4] = m_MacAddr[i].b5;
m_Cards[i].szMacAddr[5] = m_MacAddr[i].b6;
}
delete[] lpszKeyName;
}
::RegCloseKey(hNetCard);
return lRtn == ERROR_SUCCESS ? TRUE : FALSE;
}
「已注销」
2005-02-23
打赏
举报
回复
用WINPCAP来做
Dong
2005-02-20
打赏
举报
回复
ping()可以吗?我记得在linux下是有这个函数的
要不
system("ping 127.0.0.1 > te.txt");
然后查看te.txt的内容!
关注……
大熊猫侯佩
2005-02-20
打赏
举报
回复
注册表
linux 不加载
网卡
模式启动不了怎么办,还是
网卡
驱动模块不能自动加载问题?
还是
网卡
驱动模块不能自动加载问题?发布时间:2011-04-04 18:57:50来源:红联作者:不学不放心[i=s] 本帖最后由 不学不放心 于 2011-4-4 22:20 编辑 [/i]之前安装了DFE-530TX
网卡
,后发现
网卡
硬件
有问题,于是换了一块8139的
网卡
,安装好驱动,但是就是不能在启动系统时自动加载,登录后手动加载驱动模块没有问题,搜索了很多贴子,更改配置的方法试了,未成功,希...
手机sim卡插到电脑上网_听说有的笔记本电脑可以用手机卡的流量上网,是怎么弄的?需要在电脑上插手机卡么?是不是一般的笔记本都 ......
答:如果有内置上
网卡
可以直接插手机sim卡上网,如果没内置上
网卡
需要购买上
网卡
。方法:购买上
网卡
。2.将sim卡插入上
网卡
3.安装驱动,随上
网卡
附带驱动光盘,插入电脑安装,或者使用驱动精灵安装。扩展资料:无线
网卡
是什么无线
网卡
是终端无线网络的设备,是无线局域网的无线覆盖下通过无线连接网络进行上网使用的无线终端设备。通俗的说无线
网卡
是一种不需要连接 网线 的设备,一般笔记本中都集成有无线
网卡
,因此笔...
架构师成长之路(2)--架构师必备技能(目标)
前言:"比你牛B的人比你还努力,你有什么资格不去奋斗" 哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。 如果我们要成为架构师,我们自己要面临的三大问题: 找准自己定位:我是谁?在哪里? 怎样做好架构师:我要做什么? 如何搭建架构师知识体系:我该怎么做? 这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做...
dell
网卡
linux驱动,[求助]Linux下dell的无线
网卡
驱动的安装
我已经几乎找遍了所有的相关教程,可是我都没能安装成功。我的笔记本DELLLatitudeD630无线
网卡
Dell无线1390WLANMini-CardRev4.4
网卡
的芯片组BCM4311/BCM2050”Linux红旗Linux6.5(内核2.6.22)怎样安装无线
网卡
的驱动,
请
高手
指点
~~~~~~~|建议不要用红旗L...
无盘服务器pnp,无盘PNP完整版--02
网卡
纯手工
网卡
pnp的心得没事研究了一下纯手工
网卡
的pnp,一点小小的心得,不一定对,有问题大家给
指点
一下还有,下载了个"pnp注册表生成器"的东东,谁知道干什么用的和怎么样,
高手
说一下下边是手工
网卡
pnp的过程了:1、第一台电脑
硬件
安装完、重起之后,导出注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\VEN_10EC&DE...
其它技术问题
3,882
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章