我可以使用WMI和System.Management命名空间测试软驱吗?
问题描述:
我会找出软盘插入状态:我可以使用WMI和System.Management命名空间测试软驱吗?
- 没有软盘插入
- 未格式化的软盘插入
- 格式化的软盘插入
可使用“WMI”这个决定在系统。管理命名空间?
如果是这样,当软盘插入状态更改时,是否可以生成事件?
答
使用Bob Kings的想法我写了下面的方法。
它可以在CD,可移动驱动器,普通驱动器上使用。
然而,对于软盘它总是返回“不可用”。
public static void TestFloppy(char driveLetter) {
using(var searcher = new ManagementObjectSearcher( @"SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '" + driveLetter + ":'"))
using(var logicalDisks = searcher.Get()) {
foreach(ManagementObject logicalDisk in logicalDisks) {
var fs = logicalDisk[ "FreeSpace" ];
Console.WriteLine("FreeSpace = " + (fs ?? "Not Available"));
logicalDisk.Dispose();
}
}
}
答
strComputer = "."
Set objWMIService = GetObject(_
"winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_LogicalDisk Where DeviceID = 'A:'")
For Each objItem in colItems
intFreeSpace = objItem.FreeSpace
If IsNull(intFreeSpace) Then
Wscript.Echo "There is no disk in the floppy drive."
Else
Wscript.Echo "There is a disk in the floppy drive."
End If
Next
你也可以知道它是格式化或没有,通过检查Win32_LogicalDisk class的其他成员。
不适用于软盘。请参阅回复代码。 – jyoung 2008-10-03 19:20:08