Posso testare un floppy drive usando WMI & amp; Spazio dei nomi System.Management?
Domanda
Vorrei scoprire lo stato inserito floppy :
- nessun floppy inserito
- floppy non formattato inserito
- floppy formattato inserito
Questo può essere determinato usando " WMI " nello spazio dei nomi System.Management?
In tal caso, posso generare eventi quando lo stato inserito floppy cambia?
Soluzione 2
Usando l'idea di Bob Kings ho scritto il seguente metodo.
Funziona alla grande su CD, unità rimovibili, unità normali.
Tuttavia per un floppy restituisce sempre " Non disponibile " ;.
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();
}
}
}
Altri suggerimenti
Questo deriva da 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
Sarai anche in grado di dire se è formattato o meno, controllando gli altri membri di Classe Win32_LogicalDisk .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow