Запись в текстовый файл даты и время когда была вставлено 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;
                }
            }
        }

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


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

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

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