1. <dd id="erndk"></dd>
                1. 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.GetDriv…

                  【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

                  贊(0)
                  關注微信小程序
                  程序員編程王-隨時隨地學編程

                  掃描二維碼或查找【程序員編程王】

                  可以隨時隨地學編程啦!

                  技術文章導航 更多>
                  掃一掃關注最新編程教程
                  国产在线拍揄自揄视频菠萝

                        1. <dd id="erndk"></dd>