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

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

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

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

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

textual
Листинг программы
protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            if (m.Msg == WM_DEVICECHANGE)
            {
                switch (m.WParam.ToInt32())
                {
                    case DBT_DEVICEARRIVAL:
                        DEV_BROADCAST_HDR dbhARRIVAL = (DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HDR));
                        if (dbhARRIVAL.dbch_devicetype == DBT_DEVTYP_VOLUME)
                        {
                            DEV_BROADCAST_VOLUME dbv = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME));
                            BitArray bArray = new BitArray(new byte[] 
                            {
                                (byte)(dbv.dbcv_unitmask & 0x00FF),
                                (byte)((dbv.dbcv_unitmask & 0xFF00) >> 8),
                                (byte)((dbv.dbcv_unitmask & 0xFF0000) >> 16),
                                (byte)((dbv.dbcv_unitmask & 0xFF000000) >> 24)
                            });
 
                            int DriveLetter = Char.ConvertToUtf32("A", 0);
                            for (int i = 0; i < bArray.Length; i++)
                            {
                                if (bArray.Get(i))
                                    Connect(Char.ConvertFromUtf32(DriveLetter));
                                DriveLetter += 1;
                            }
                        }
                        break;

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


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

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

7   голосов , оценка 4.429 из 5
Похожие ответы