2009-05-28 16 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 
関連する問題