Могу ли я протестировать дисковод гибких дисков, используя пространство имен WMI и System.Management?
Вопрос
я бы узнал состояние вставленной дискеты:
- дискета не вставлена
- вставлена неформатированная дискета
- вставлена отформатированная дискета
Можно ли это определить с помощью «WMI» в пространстве имен System.Management?
Если да, могу ли я генерировать события, когда состояние вставленной дискеты изменения?
Решение 2
Используя идею Боба Кинга, я написал следующий метод.
Он отлично работает на компакт-дисках, съемных и обычных дисках.
Однако для дискеты он всегда возвращает «Недоступно».
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();
}
}
}
Другие советы
Это происходит от Центр сценариев @ MSDN:
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.
Не связан с StackOverflow