WMI & System.Management Namespace를 사용하여 플로피 드라이브를 테스트 할 수 있습니까?

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

  •  03-07-2019
  •  | 
  •  

문제

나는 찾을 것이다 플로피 삽입 상태:

  • 플로피가 삽입되지 않았습니다
  • 형식화되지 않은 플로피 삽입
  • 포맷 된 플로피 삽입

시스템에서 "WMI"를 사용하여 결정할 수 있습니까? 관리 네임 스페이스?

그렇다면 이벤트를 생성 할 수 있습니다 플로피 삽입 상태 변경?

도움이 되었습니까?

해결책 2

Bob Kings 아이디어를 사용하여 다음 방법을 썼습니다.

CD, 탈착식 드라이브, 일반 드라이브에서 훌륭하게 작동합니다.

그러나 플로피의 경우 항상 "사용할 수 없음"을 반환합니다.

    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();
            }
        }
    }

다른 팁

이것은 나옵니다 스크립팅 센터 @ 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

또한 다른 구성원을 확인하여 형식이 있는지 여부를 알 수 있습니다. Win32_LogicalDisk 클래스.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top