永发信息网

如何用C#程序安装虚拟网卡 泪求代码

答案:2  悬赏:10  手机版
解决时间 2021-04-14 07:21
如何用C#程序安装虚拟网卡 泪求代码
最佳答案
C#判断是否存在已连接的真实网卡

这个问题可以拆成两个小问题:

1、如何判断一个网卡是否为真实网卡(即物理网卡),因为可能还有虚拟网卡,比如装了某个虚拟机;2、如何判断一个网卡有没有连接(连接不代表就能上Internet)。

注:这里的网卡确切地应该叫网络适配器(Network Adapter)。

用C#获取硬件信息最方便的莫过于WMI了,与网卡相关的信息就在Win32_NetworkAdapter这个类里面了。

第一个问题:在Win32_NetworkAdapter里有个叫PNPDeviceID的字符串属性,官方的说明是Windows Plug and Play device identifier of the logical device。如果这个属性的前3个字符是PCI,那么这就是本机的真实网卡(不要问我为什么,我也想知道),包括无线网卡。

第二个问题:还是在Win32_NetworkAdapter里有个名为NetConnectionStatus的uint16类型的属性,其中2代表已连接,7代表断开。其他各值的含义请参见MSDN。

OK,问题解决,最终的代码为:

ManagementObjectSearcher s = new ManagementObjectSearcher( @"SELECt DeviceID FROM Win32_NetworkAdapter WHERe NetConnectionStatus=2 AND PNPDeviceID LIKE 'PCI%'"); return s.Get().Count > 0; //True表示存在已连接的真实网卡,False反之。

记得添加using System.Management;和对System.Management.dll的引用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECt * FROM Win32_NetworkAdapter");

foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_NetworkAdapter instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("NetConnectionStatus: {0}", queryObj["NetConnectionStatus"]);
Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
全部回答
同问。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
极点五笔6.5版的输入法如何输入日文啊?
为什么我的鼠表点一些东西会失灵啊
凯美瑞后面的e.g.s分别表示什么意思
明亨茶饮(紫萱店)地址在哪,我要去那里办事
我被一颗虔诚的童心感染了,心里充满温暖。改
两个眉毛中间额头的位置长豆豆了怎么办
中国好声音第七期歌曲名单谁给我报下?
白说中议论性的句子,急求翻译 “谚语是风土民
11.6号我更新了战地之王后为什么进不去,还提
在下列横线上写出相应的名句。(只选两小题)
北京社会函授大学还在招生吗?
世纪超市明冠店这个地址在什么地方,我要处理
坐船出湖边的心情句子,有那些形容场面安静心
我能变成超级赛亚人吗,?
早上吃太多了,肚子胀了一天一直有想吐的欲望
推荐资讯
好友qq农场
请佛法讲讲有护法究竟是好是坏
镇江科技大学是几本啊?
已知A={1,4,x},B={x2,1},若B?A,求实数x
天天跑步是不是不容易瘦腿上肉肉?
排版软件PageMaker到底怎么读呢?MAKER是念“
桃园农家这个地址在什么地方,我要处理点事
— there two football matches here tomorr
五年级参加夏令营活动,无论是6 人编成一组还
There are many kinds of entertainment for
我是杭州的,没有建设银行的卡 能给安徽界首
电脑启动时按F12没有用
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?