2009-05-28 5 views

답변

1

이 무료 DriveDetector 클래스는이 기능을 제공합니다 (USB 드라이브는 최소한 사용 했으므로). 그것은 당신이 설명하는 WndProc 접근법을 사용합니다.

나는 표준 .NET 라이브러리의 일부인 비슷한 것을 알지 못합니다.

0

다음 코드에서 새 드라이브가 감지되면 moDiskDetector가 EventArrived 이벤트를 발생시킵니다.

드라이브 제거를 감지하려면 "__InstanceDeletionEvent"를 사용하십시오.

Private WithEvents moDiskAddWatcher As ManagementEventWatcher 

Private Sub StartWatcher() 

    If moDiskAddWatcher Is Nothing Then 
     moDiskAddWatcher = CreateWatcher("__InstanceCreationEvent", "(TargetInstance ISA 'Win32_DiskDrive')") 
    End If 
    moDiskAddWatcher.Start() 

End Sub 

Private Sub StopWatcher() 

    If moDiskAddWatcher IsNot Nothing Then 
     moDiskAddWatcher.Stop() 
     moDiskAddWatcher.Dispose() 
    End If 

End Sub 

Private Function CreateWatcher(ByVal sClassName As String, ByVal sCondition As String) As ManagementEventWatcher 

    Dim oQuery As New WqlEventQuery() 

    oQuery.EventClassName = sClassName 
    oQuery.WithinInterval = New TimeSpan(0, 0, 5) 
    oQuery.Condition = sCondition 
    Return New ManagementEventWatcher(oQuery) 

End Function 
관련 문제