Kann ich ein Diskettenlaufwerk mit WMI & System.Management Namespace testen?

StackOverflow https://stackoverflow.com/questions/154754

  •  03-07-2019
  •  | 
  •  

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?

War es hilfreich?

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
scroll top