Kann ich ein Diskettenlaufwerk mit WMI & System.Management Namespace testen?
Frage
würde ich den floppy schobenen Zustand herausfinden :
- keine Diskette eingelegt
- unformatierte Diskette eingelegt
- formatierte Diskette eingelegt
Kann man das bestimmt "WMI" im System.Management Namespace?
Wenn ja, kann ich generieren Ereignisse, wenn die floppy schobenen Zustand Änderungen?
Lösung 2
Mit Bob King Idee, die ich schrieb die folgende Methode.
Es funktioniert auf CDs, Wechsellaufwerke, regelmäßige Laufwerke.
Doch für eine Floppy es immer wieder zurückkehren "Nicht verfügbar".
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();
}
}
}
Andere Tipps
Das kommt von 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
Sie werden auch in der Lage sein zu sagen, ob sie formatiert ist oder nicht, von anderen Mitgliedern der Win32_LogicalDisk Klasse .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow