Puis-je tester un lecteur de disquette avec WMI & amp; Espace de noms System.Management?
Question
Je voudrais connaître l'état de la disquette insérée :
- aucune disquette insérée
- disquette non formatée insérée
- disquette formatée insérée
Cela peut-il être déterminé avec "WMI"? dans l'espace de noms System.Management?
Si tel est le cas, puis-je générer des événements lorsque l'état de la disquette insérée est modifié?
La solution 2
En utilisant l’idée de Bob Kings, j’ai écrit la méthode suivante.
Cela fonctionne très bien sur les CD, les lecteurs amovibles et les lecteurs normaux.
Cependant, pour une disquette, le résultat est toujours "Pas 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();
}
}
}
Autres conseils
Cela vient de Centre de scripts @ 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
Vous pourrez également savoir s'il est formaté ou non, en vérifiant les autres membres du Classe Win32_LogicalDisk .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow