Написать программу, которая будет отслеживать подключение USB-устройств - C#

Узнай цену своей работы

Формулировка задачи:

Хочу написать программу которая будет отслеживать подключение usb устройств(флешек хардов и д.р. съемных накопителей). В общем суть проги пока что проста, подключается устройство и в командной строке или в форме пишется текст что подключилось такое то устройство и писался путь устройства. Можете помочь в написании такой программы, любые советы, статью приму в помощь.И попутный вопрос, возможна ли такая реализация на c# или придется все же писать на с\с++?

Решение задачи: «Написать программу, которая будет отслеживать подключение USB-устройств»

textual
Листинг программы
  1. protected override void WndProc(ref Message m)
  2.         {
  3.             base.WndProc(ref m);
  4.             if (m.Msg == WM_DEVICECHANGE)
  5.             {
  6.                 switch (m.WParam.ToInt32())
  7.                 {
  8.                     case DBT_DEVICEARRIVAL:
  9.                         DEV_BROADCAST_HDR dbhARRIVAL = (DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HDR));
  10.                         if (dbhARRIVAL.dbch_devicetype == DBT_DEVTYP_VOLUME)
  11.                         {
  12.                             DEV_BROADCAST_VOLUME dbv = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME));
  13.                             BitArray bArray = new BitArray(new byte[]
  14.                             {
  15.                                 (byte)(dbv.dbcv_unitmask & 0x00FF),
  16.                                 (byte)((dbv.dbcv_unitmask & 0xFF00) >> 8),
  17.                                 (byte)((dbv.dbcv_unitmask & 0xFF0000) >> 16),
  18.                                 (byte)((dbv.dbcv_unitmask & 0xFF000000) >> 24)
  19.                             });
  20.  
  21.                             int DriveLetter = Char.ConvertToUtf32("A", 0);
  22.                             for (int i = 0; i < bArray.Length; i++)
  23.                             {
  24.                                 if (bArray.Get(i))
  25.                                     Connect(Char.ConvertFromUtf32(DriveLetter));
  26.                                 DriveLetter += 1;
  27.                             }
  28.                         }
  29.                         break;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы