¿Puedo probar una unidad de disquete con WMI & amp; System.Management namespace?
Pregunta
Descubriría el estado insertado del disquete :
- no hay ningún disquete insertado
- disquete sin formato insertado
- se ha insertado un disquete formateado
¿Se puede determinar esto utilizando " WMI " en el espacio de nombres System.Management?
Si es así, ¿puedo generar eventos cuando cambie el estado insertado del disquete ?
Solución 2
Usando la idea de Bob Kings, escribí el siguiente método.
Funciona muy bien en CD, unidades extraíbles, unidades normales.
Sin embargo, para un disquete, siempre devuelve " No disponible " ;.
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();
}
}
}
Otros consejos
Esto proviene de Scripting Center @ 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
También podrá saber si está formateado o no, consultando a otros miembros de Win32_LogicalDisk class .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow