C#監控U盤插拔
互聯網 2022/4/29 22:12:45
【1】涉及的知識點
1) windows消息處理函數
protected override void WndProc(ref Message m)
捕獲Message的系統硬件改變發出的系統消息
2) 硬件信息類
DriveInfo
關鍵實現1:
掃描所有存儲設備,篩選出U盤
private void ScanDisk() { DriveInfo[] drives = DriveInfo.GetDrives(); foreach (var drive in drives) { // 可移動存儲設備,且不是A盤 if ((drive.DriveType == DriveType.Removable) && false == drive.Name.Substring(0, 1).Equals("A")) { Console.WriteLine("找到一個U盤:" + drive.Name); } } }
關鍵實現2:
監聽系統消息,在加載U盤時處理
const int WM_DeviceChange = 0x219; // 系統硬件改變發出的系統消息 const int DBT_DeviceArrival = 0x8000; // 設備檢測結束,并可以使用 const int DBT_DeviceRemoveComplete = 0x8004;// 設備移除 protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_DeviceChange) // 系統硬件改變發出的系統消息 { switch (m.WParam.ToInt32()) { case WM_DeviceChange: break; case DBT_DeviceArrival: ScanDisk(); // 掃描所有滿足特征的設備 break; case DBT_DeviceRemoveComplete: ScanDisk(); break; default: break; } } }
更多參考: C#.NET U盤插拔監控

關于找一找教程網
本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
[C#監控U盤插拔]http://www.yachtsalesaustralia.com/tech/detail-318061.html
- 2022-03-01沐雪多租寶商城源碼從.NetCore3.1升級到.Net6的步驟
- 2022-05-03Halcon的C#二次開發及經驗分享
- 2022-05-03C#內建接口:IConvertible
- 2022-05-02C#枚舉高級應用
- 2022-05-02powerdesigner生成C#代碼(帶注釋)
- 2022-05-02asp.net core 跨域
- 2022-05-02以Microsoft C# Windows程序設計為例,理解PageUnit和PageScale的用法
- 2022-05-02微軟商店下載的python 的 pip 不能修改 config 的解決方法
- 2022-05-02C++ 和 C# 類型轉換
- 2022-05-01C#內建接口:IEquatable泛型