Написать программу, которая будет отслеживать подключение 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д