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

互助
签到任务
最火的业界新闻
  • 疑似小米平板5渲染图曝光!16:10 LCD屏加持
  • 国产之光!小米手机Q1出货量拿下欧洲第二:
  • 狗狗币市值突破800亿美元 超过通用汽车
  • 12.9英寸的iPad Pro遭遇交货延迟 最晚在7月
  • 12代酷睿Alder Lake-S工程样品泄露:详尽参
  • 盖茨夫妇1450亿美元如何分割?女方已获得18
  • 锁算力豪华限定版?NVIDIA建议AIC为新批次
  • 杀死时间、丧失思考,他们选择戒掉短视频
  • Alexa应用程序迎来Show Mode更新:联想PC秒
  • 技嘉发布两款旗舰级游戏主机:XSX外形 噪音
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 舒服
  • 后面,黑袍纠察队
  • 时代的眼泪
  • 从视角看,他扮演的女精灵
  • 我竟然是80后
  • 猎杀时刻
  • 果然是童子功
  • 化妆后千万别趴着睡
  • 刚倾家荡产
  • 准备换手机,曲面屏再好也不考虑
关注官方微信
快速回复 返回顶部 返回列表