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