Запись в текстовый файл даты и время когда была вставлено usb устройство в компьютер - C#
Формулировка задачи:
Здравствуйте,подскажите пожалуйста как можно осуществить запись в текстовый файл даты и время когда было вставлено usb устройство в компьютер,при условии что файлик должен создаваться например на сервере.После каждого подключения,в компьютер находящийся в сети, usb устройства в файлике,на сервере, добавляется строка (дата-время)
Имеется ввиду что существует компьютерный класс объединённых в сеть и есть сервер на котором должен быть 1 файлик в котором находятся (дата-время) всех usb подключений произходящих в сети
Решение задачи: «Запись в текстовый файл даты и время когда была вставлено usb устройство в компьютер»
textual
Листинг программы
[StructLayout(LayoutKind.Sequential)] private struct DEV_BROADCAST_HDR { public uint dbch_size; public uint dbch_devicetype; public uint dbch_reserved; } [StructLayout(LayoutKind.Sequential)] private struct DEV_BROADCAST_VOLUME { public uint dbcv_size; public uint dbcv_devicetype; public uint dbcv_reserved; public uint dbcv_unitmask; public ushort dbcv_flags;//public System.UInt16 } private const int WM_DEVICECHANGE = 0x0219; private const int DBT_DEVNODES_CHANGED = 0x0007; private const int DBT_DEVICEARRIVAL = 0x8000; // system detected a new device private const int DBT_DEVICEQUERYREMOVE = 0x8001; // wants to remove, may fail private const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002; // removal aborted private const int DBT_DEVICEREMOVEPENDING = 0x8003; // about to remove, still avail. private const int DBT_DEVICEREMOVECOMPLETE = 0x8004; // device is gone private const int DBT_DEVICETYPESPECIFIC = 0x8005; // type specific event private const uint DBT_DEVTYP_OEM = 0x00000000; // oem-defined device type private const uint DBT_DEVTYP_DEVNODE = 0x00000001; // devnode number private const uint DBT_DEVTYP_VOLUME = 0x00000002; // logical volume private const uint DBT_DEVTYP_PORT = 0x00000003; // serial, parallel private const uint DBT_DEVTYP_NET = 0x00000004; // network resource private const ushort DBTF_MEDIA = 0x0001; // media comings and goings protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_DEVICECHANGE) { switch (m.WParam.ToInt32()) { case DBT_DEVNODES_CHANGED: break; case DBT_DEVICEARRIVAL: DEV_BROADCAST_HDR dbh = (DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HDR)); if (dbh.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)) { listBox1.Items.Add("Connection driveLetter = " + driveLetter); listBox1.Items.Add("Connection drive = " + Char.ConvertFromUtf32(driveLetter)); listBox1.Items.Add(ConnectionFlashDrive(Char.ConvertFromUtf32(driveLetter))); if (ConnectionFlashDrive(Char.ConvertFromUtf32(driveLetter))) { mode = ModeResolution(); } } driveLetter += 1; } } break; case DBT_DEVICEREMOVECOMPLETE: DEV_BROADCAST_HDR dbh0 = (DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HDR)); if (dbh0.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)) { listBox1.Items.Add("Removed driveLetter = " + driveLetter); listBox1.Items.Add("Removed drive = " + Char.ConvertFromUtf32(driveLetter)); mode = false; } driveLetter += 1; } } break; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д