WMI & System.Management Namespace를 사용하여 플로피 드라이브를 테스트 할 수 있습니까?
문제
나는 찾을 것이다 플로피 삽입 상태:
- 플로피가 삽입되지 않았습니다
- 형식화되지 않은 플로피 삽입
- 포맷 된 플로피 삽입
시스템에서 "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 클래스.
제휴하지 않습니다 StackOverflow