找回密码
 加入
搜索
查看: 89|回复: 1

WM_DEVICECHANGE能检测USB网卡插入和删除吗?

[复制链接]
发表于 2025-2-9 15:28:29 | 显示全部楼层 |阅读模式
今天从论坛看到了用WM_DEVICECHANGE可以检测U盘的插入和删除,但是我测试USB网卡只能检测到USB发生变化(通过$WM_DEVICECHANGE),但是我不会进一步获取到新插入的USB的网卡信息,求助一下大家,我就想检测USB网卡插入,然后获取新插入网卡的信息。
发表于 2025-2-12 20:58:10 | 显示全部楼层
#include <Constants.au3> #include <MsgBoxConstants.au3> #include <Array.au3>  ; 定义全局变量 Global $sLastUSBDevice = ""  ; 主循环,持续检测USB设备插入 While 1     ; 获取当前连接的USB设备     Local $aUSBDevices = GetUSBDevices()      ; 检查是否有新的USB设备插入     For $sDevice In $aUSBDevices         If StringInStr($sDevice, "USB") And Not StringInStr($sLastUSBDevice, $sDevice) Then             ; 检测到新的USB网卡             $sLastUSBDevice = $sDevice             MsgBox($MB_SYSTEMMODAL, "检测到USB网卡", "新插入的USB网卡: " & $sDevice)              ; 获取USB网卡信息             Local $sUSBInfo = GetUSBAdapterInfo()             MsgBox($MB_SYSTEMMODAL, "USB网卡信息", $sUSBInfo)         EndIf     Next      ; 每隔2秒检测一次     Sleep(2000) WEnd  ; 函数:获取当前连接的USB设备 Func GetUSBDevices()     Local $aDevices[0]     Local $oWMI = ObjGet("winmgmts:\\.\root\cimv2")     Local $oColItems = $oWMI.ExecQuery("SELECT * FROM Win32_PnPEntity WHERE PNPClass = 'Net'", "WQL", 0x30)      For $oItem In $oColItems         If StringInStr($oItem.Name, "USB") Then             _ArrayAdd($aDevices, $oItem.Name)         EndIf     Next      Return $aDevices EndFunc  ; 函数:获取USB网卡信息 Func GetUSBAdapterInfo()     Local $sOutput = ""     Local $iPID = Run("ipconfig /all", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)      ; 读取命令输出     While 1         $sOutput &= StdoutRead($iPID)         If @error Then ExitLoop     WEnd      ; 关闭进程     ProcessClose($iPID)      ; 过滤出包含"USB"关键字的行     Local $aLines = StringSplit($sOutput, @CRLF, $STR_ENTIRESPLIT)     Local $sUSBInfo = ""      For $i = 1 To $aLines[0]         If StringInStr($aLines[$i], "USB") Then             $sUSBInfo &= $aLines[$i] & @CRLF         EndIf     Next      Return $sUSBInfo EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-2-21 20:19 , Processed in 0.075589 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表