IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[分享] AU3通过WMI获取本机网卡信息

[复制链接]
nyjy_hx 发表于 2021-1-6 14:09:30 | 显示全部楼层 |阅读模式

aaa.jpg

  1. #NoTrayIcon
  2. #include<GUIConstants.au3>
  3. ;~ --------------------------建立窗口----------------------------------------------------
  4. $Form1 = GUICreate("获取本机物理网卡信息", 360, 400)
  5. GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
  6. $netname=GUICtrlCreateCombo("",0,0,300,24,$CBS_DROPDOWNLIST)

  7. $n_name=GUICtrlCreateLabel("",0,25,300,24)
  8. $n_mac=GUICtrlCreateLabel("",0,50,200,24)
  9. $n_ip=GUICtrlCreateLabel("",0,75,200,24)
  10. $n_mask=GUICtrlCreateLabel("",0,100,200,24)
  11. $n_gateway=GUICtrlCreateLabel("",0,125,200,24)
  12. $n_dns=GUICtrlCreateLabel("",0,150,200,24)
  13. $n_dhcp=GUICtrlCreateRadio("DHCP",0,175,80,24)
  14. $n_static=GUICtrlCreateRadio("STATIC",82,175,80,24)

  15. GUISetState(@SW_SHOW)
  16. $wmi = objget("winmgmts:\\")
  17. $net=$wmi.instancesof("win32_networkadapter")

  18. For  $nt in $net
  19. if $nt.physicaladapter=true And StringInStr($nt.PNPDeviceID, "ROOT") = 0 then GUICtrlSetData($netname,$nt.Description)                ;列出本机物理网卡添加到COMBOX列表中
  20. Next

  21. ;~ --------------------------------------消息循环----------------------------------------------------
  22. While 1
  23.         $nMsg = GUIGetMsg()
  24.         Switch $nMsg
  25.                 Case $GUI_EVENT_CLOSE
  26.                         Exit
  27.                 Case $netname
  28.                         If GUICtrlRead($netname)<>"" Then
  29.                                 ;$strComputer = "."
  30.                                 ;$objwim= ObjGet("winmgmts://" & $strComputer & "/root/cimv2")
  31.                                 ;$sql="Select * from win32_NetworkAdapterConfiguration where description like " &Chr(34) &GUICtrlRead($netname) &Chr(34)
  32.                                 ;$net=$objwim.ExecQuery($sql)
  33.                                 $net=$wmi.instancesof("win32_NetworkAdapterConfiguration")                ;实际测试只用这一句就能完成上面3行的作用
  34.                                 For  $nt in $net
  35.                                         If $nt.Description=GUICtrlRead($netname) Then
  36.                                                 GUICtrlSetData($n_name,$nt.Description)                        ;获取网卡描述 也就是网卡设备名称
  37.                                                 GUICtrlSetData($n_mac,$nt.MACAddress)                        ;获取网卡MAC地址
  38.                                                 GUICtrlSetData($n_ip,$nt.IPAddress(0))                        ;获取网卡IP地址
  39.                                                 GUICtrlSetData($n_mask,$nt.IPSubnet(0))                        ;获取网卡子网掩码
  40.                                                 $a=""                                                                                        ;初始化DNS字符串
  41.                                                 For $i=0 To UBound($nt.DNSServerSearchOrder)-1        ;查询DNS数量并循环
  42.                                                         $a&=$nt.DNSServerSearchOrder($i) &","                ;将DNS保存到字符串并以,进行分割
  43.                                                 next
  44.                                                 $a=StringLeft ($a, StringLen($a)-1)                                ;将字符串最后的","去掉
  45.                                                 GUICtrlSetData($n_dns,$a)                                                ;显示最终获取的DNS地址
  46.                                                 GUICtrlSetData($n_gateway,$nt.DefaultIPGateway(0))                ;获取网关地址
  47.                                                 If $nt.DHCPEnabled=True Then                                                         ;获取网卡DHCP状态 如果是DHCP模式则  单选框DHCP为选中状态 否则 STATIC 为选中状态
  48.                                                         GUICtrlSetState($n_dhcp,1)
  49.                                                 Else
  50.                                                         GUICtrlSetState($n_static,1)
  51.                                                 endif
  52.                                                 ExitLoop
  53.                                         EndIf
  54.                                 next
  55.                                
  56.                         endif
  57.         EndSwitch
  58. WEnd

  59. Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
  60.         If ($hWnd = $Form1) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
  61. EndFunc   ;==>WM_NCHITTEST



复制代码



最近访问 头像模式 列表模式
Blown 发表于 2021-1-7 15:35:28 | 显示全部楼层

活跃 108| 技术 0| 互助 0| 钻石 0

好东西,正在学习这块东西!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

nyjy_hx

58

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • 英特尔为OEM厂商推出基于10nm SuperFin的DG
  • 紫米推出6A魔改线 支持小米55W、120W快充系
  • 矿工盯上RTX 3060游戏本:效率堪比RTX 2080
  • 十铨首发SO-DIMM DDR5-4800内存:单条容量1
  • PassMark基准测试:酷睿i9-11900K单线程性
  • 罗永浩登上央视:带货查干湖胖头鱼 4小时卖
  • 1199元 中国电信天翼1号2021云手机发布:一
  • 消息称联发科预计将在今年上半年发布两款升
  • 银欣发布Nightjar NJ700钛金静音电源 采用
  • GeForce RTX 3000系列移动GPU基准测试成绩
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 春节限定版
  • 爸爸为儿子写的请假条
  • 可以分成同样两半的离婚律师名片
  • 转生后发现自己有点奇怪
  • 妈妈的花花世界
  • 带入游戏才能推动男人干活啊
  • 还是因为钱啊
  • 一己之力
  • 看样子开始主动离家出走
  • 强迫症有被冒犯
关注官方微信
快速回复 返回顶部 返回列表