Posso testare un floppy drive usando WMI & amp; Spazio dei nomi System.Management?

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

  •  03-07-2019
  •  | 
  •  

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?

È stato utile?

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