none
usb algılama RRS feed

  • Soru

  • merhaba arkadaşlar ben usb'den bir dosya çekip onu analiz etmek istiyorum bu işlemi usb takıldığı zamanda yapması gerekiyor. Usb'nin bilgisayara bağlandığı anda olan olaylar için bir kod yazdım fakat usb'nin volume label, driver format gibi verilere ulaşamıyorum yazdığım kod burada bir yardımcı olabilir misiniz?

            private const int WM_DEVICECHANGE = 0x219;
            private const int DBT_DEVICEARRIVAL = 0x8000;
            private const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
            private const int DBT_DEVTYP_VOLUME = 0x00000002;
            
            protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
                    switch (m.Msg)
                    {
                        case WM_DEVICECHANGE:

                            switch ((int)m.WParam)
                            {
                                case DBT_DEVICEARRIVAL:
                                    listBox1.Items.Add("New Device Arrived");
                                    break;
                                case DBT_DEVICEREMOVECOMPLETE:
                                    listBox1.Items.Add("Device Removed");
                                    break;
                            }
                            break;
                    }
            }

    29 Aralık 2019 Pazar 16:25

Tüm Yanıtlar

  • Volume label'ı aşağıdaki kod ile alabilirsiniz.

    var drives = new ManagementObjectSearcher("Select * from Win32_LogicalDiskToPartition").Get().Cast<ManagementObject>();
                var disks = new ManagementObjectSearcher("Select * from Win32_LogicalDisk").Get().Cast<ManagementObject>();
                foreach (var drive in drives)
                {
                    var driveLetter = Regex.Match((string)drive["Dependent"], @"DeviceID=""(.*)""").Groups[1].Value;
                    var foundDisk = disks.Where((d) => d["Name"].ToString() == driveLetter).FirstOrDefault();
                    MessageBox.Show("Disk Adı : " + foundDisk["VolumeName"]);
                }

    3 Ocak 2020 Cuma 06:34