我尝试了win32com.client库
import win32com.client
# import wmi# 获取WMI服务
wmiService = win32com.client.Dispatch("WbemScripting.SWbemLocator").ConnectServer('.', 'root\cimv2')
# 获取所有设备
devices = wmiService.ExecQuery("SELECT * FROM Win32_PnPEntity")
num = 0
# 输出每个设备的信息
for device in devices:
num += 1
print(f"device:{device.Caption}\ndeviceName:{device.Name}\ndeviceDescription:{device.Description}")
print(num)
并打印了device的对象,似乎没有发现版本的属性,尝试了很多属性也不见有
还尝试了infi.devicemanager库
from infi.devicemanager import DeviceManager
dm = DeviceManager()
dm.root.rescan()
devices = dm.all_devices
for device in devices:
print(device)
也只是得到驱动名,没有版本号
是否有其他库能够尝试,比如ctypes?又或者是我使用过的,但还有其它方法
第一个改一改试试:
devices = wmiService.ExecQuery("SELECT * FROM Win32_PnPSignedDriver")
# 输出每个设备的信息
for device in devices:
print(f"deviceName:{device.DeviceName}\ndeviceVersion:{device.DriverVersion}")
【以下回答由 GPT 生成】
回答问题: 问题标题: 如何使用Python访问设备管理器获取驱动设备名称和版本?
解决方案:
很遗憾,无法直接使用Python访问设备管理器来获取驱动设备的名称和版本号。目前,没有Python标准库或第三方库可以直接实现这个功能。但是,我们可以通过其他方法来获取驱动设备的名称和版本号。
一种方法是使用Windows系统自带的命令行工具devcon.exe
。devcon.exe
是一个Windows设备管理工具,可以用来列出设备信息、安装/卸载驱动等操作。我们可以通过Python的subprocess
模块来调用devcon.exe
命令,并解析命令输出来获取驱动设备的名称和版本号。
首先,确保你已经下载并安装了devcon.exe
。你可以从微软官方下载Windows Driver Kit (WDK)
来获取devcon.exe
。安装完成后,将devcon.exe
所在的路径添加到系统环境变量中。
接下来,可以使用以下Python代码来调用devcon.exe
并获取驱动设备的名称和版本号:
import subprocess
command = 'devcon.exe driverfiles *'
output = subprocess.check_output(command, shell=True, universal_newlines=True)
# 解析命令输出,提取驱动设备的名称和版本号
lines = output.strip().split('\n')
devices = []
for line in lines:
line = line.strip()
if line.startswith('Kernel modules'):
break
if line.startswith('Driver Description:'):
device_name = line.split(':')[1].strip()
elif line.startswith('Driver Version:'):
device_version = line.split(':')[1].strip()
devices.append((device_name, device_version))
# 打印驱动设备的名称和版本号
for device in devices:
print('Device Name:', device[0])
print('Device Version:', device[1])
print('---')
这个方法会调用devcon.exe
的driverfiles *
命令,该命令会列出所有驱动设备的名称和版本号。我们解析命令输出,提取驱动设备的名称和版本号,并打印出来。
请注意,在执行前,请确保你已经正确安装了devcon.exe
,并将其路径添加到系统环境变量中。如果没有安装或配置正确,以上代码将无法执行成功。
希望这个解决方案能帮到您,如果您有其他问题,请随时提问。