2009-04-03 40 views

Trả lời

12

Có một lớp được gọi là DriveDetector qua tại Codeproject có vẻ như nó làm những gì bạn muốn.

3

Nhìn vào WM_DEVICECHANGE. Tin nhắn này sẽ được gửi khi một ổ đĩa được chèn vào.

1

Tôi biết điều này không chính xác những gì bạn yêu cầu, nhưng nếu bạn muốn kiểm tra xem thiết bị nào có sẵn tại bất kỳ thời điểm nào, có cách khác. Bạn có thể sử dụng các lớp WMI trong System.Management namespace, tôi đã sử dụng phương pháp này và nó hoạt động tốt.

Nếu bạn xem this answer, nó sẽ hiển thị cách liệt kê tất cả các ổ đĩa trên hệ thống. Sau đó, bạn có thể xem loại ổ đĩa để xác định xem đó có phải là thanh USB hay không.

0

Tôi đã viết mô-đun powershell sử dụng System.Management.ManagementEventWatcher và lớp WMI Win32_VolumeChangedEvent để hiển thị các sự kiện mới mà bạn có thể đăng ký trong phạm vi quyền hạn bao gồm xóa thiết bị, vv .. Bạn có thể tìm ra hệ thống ống nước có liên quan từ bài viết trên blog này của tôi:

http://www.nivot.org/nivot2/post/2008/08/16/AutoMountunmountNewPSDrivesForRemovableDrivesAndNetworkSharesInPowerShellV2.aspx

Bạn sẽ có thể để dây lên một sự kiện cho các ổ đĩa mới trong vòng chưa đầy mười dòng của C# bằng cách sử dụng phương pháp tôi sử dụng trong kịch bản trên.

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan