我使用kernel32 dll的包装器在Python中编程,所以我可以使用这个dll的任何函数,例如GetLogicalDrives()。我正在尝试获取物理驱动器的信息,即使它们未安装。我见过类似这样的问题,但我需要未安装驱动器的信息。我见过的所有方法都需要设备中的目录或文件,但是如果它没有安装,我就不能有,所以问题是:
是否有一种方法可以为我提供系统中的物理驱动器列表,即使它们没有安装?
我不得不说使用Windows注册表,我已经在“ HKEY_LOCAL_MACHINE \ Hardware \ Devicemap \ Scsi \ Scsi Port x ”中获得了物理驱动器的数量,因为在此键的内部,你可以看到驱动器的数量,包括cd-rom设备或软盘设备。但我也需要未安装设备的尺寸,所以......
答案 0 :(得分:3)
使用Tim Golden的wmi模块。这是cookbook条目:
import wmi
w = wmi.WMI()
for drive in w.Win32_LogicalDisk():
print drive.Caption, drive.Size, drive.FreeSpace
打印
C: 99928924160 14214135808 D: None None E: 499983122432 3380903936 S: 737329123328 362274299904 T: 737329123328 9654988800
但请注意,我的D:驱动器(DVD驱动器,未安装)没有可用信息。我不认为你可以获得未安装的可移动媒体的尺寸信息。
答案 1 :(得分:1)
FindFirstVolume和FindNextVolume 可能是你需要的。
有一个示例可以搜索卷并列出每个卷的所有路径,乍一看,它似乎允许某些卷没有这种路径的可能性。也就是说,我从来没有用过这个。
答案 2 :(得分:1)
您也可以尝试使用win32模块进行Python。
答案 3 :(得分:0)
Win32_DiskDrive
wmi课怎么样?
c = wmi.WMI()
dd = c.Win32_DiskDrive()[0]
print.dd
有关Win32_DiskDrive on the msdn
的更多信息答案 4 :(得分:-2)
http://msdn.microsoft.com/en-us/library/aa365730(VS.85).aspx
GetLogicalDrives() GetLogicalDriveStrings()
看起来像你想要的。但他们的工作是A:,B:C:等,而不是\?\ HardDisk或其他什么