ホームページ > バックエンド開発 > C++ > WMIを使用してWindowsで接続されたUSBデバイスの包括的なリストを取得するにはどうすればよいですか?

WMIを使用してWindowsで接続されたUSBデバイスの包括的なリストを取得するにはどうすればよいですか?

DDD
リリース: 2025-01-25 00:37:09
オリジナル
626 人が閲覧しました

How Do I Get a Comprehensive List of Connected USB Devices in Windows Using WMI?

Windowsシステム上の接続されているUSBデバイスの包括的なリストへのアクセス

効率的なハードウェア管理には、接続された周辺機器の検査と対話が必要になることがよくあります。 ユビキタスであるUSBデバイスは、在庫、診断、またはその他の管理タスクにプログラマティックアクセスを必要とすることがよくあります。 Windowsは、この情報を取得するためのいくつかの方法を提供します。強力なアプローチの1つは、Windows Management Instrumentation(WMI)フレームワークを使用することです。

WMIは、接続されたUSBデバイスの完全な画像を含む、詳細なシステムとハードウェア情報を提供します。 これには、プロジェクトに

アセンブリを組み込む必要があります。 次のC#コードの例は、このデータを取得する方法を示しています。 System.Management このコードは、query "select * from win32_usbhub"をquery "select *" select * select *を使用してa

を使用して、すべてのUSBハブを取得します。 それぞれの
<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Management; // Requires adding System.Management to project references

namespace USBDeviceEnumeration
{
    class Program
    {
        static void Main(string[] args)
        {
            List<USBDeviceInfo> usbDevices = GetUSBDevices();

            foreach (USBDeviceInfo device in usbDevices)
            {
                Console.WriteLine($"Device ID: {device.DeviceID}, PNP Device ID: {device.PnpDeviceID}, Description: {device.Description}");
            }

            Console.ReadKey();
        }

        static List<USBDeviceInfo> GetUSBDevices()
        {
            List<USBDeviceInfo> devices = new List<USBDeviceInfo>();

            using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_USBHub"))
            using (ManagementObjectCollection collection = searcher.Get())
            {
                foreach (ManagementObject device in collection)
                {
                    devices.Add(new USBDeviceInfo(
                        (string)device.GetPropertyValue("DeviceID"),
                        (string)device.GetPropertyValue("PNPDeviceID"),
                        (string)device.GetPropertyValue("Description")
                    ));
                }
            }
            return devices;
        }
    }

    class USBDeviceInfo
    {
        public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
        {
            DeviceID = deviceID;
            PnpDeviceID = pnpDeviceID;
            Description = description;
        }
        public string DeviceID { get; private set; }
        public string PnpDeviceID { get; private set; }
        public string Description { get; private set; }
    }
}</code>
ログイン後にコピー
はハブを表し、それについて詳細と接続されたデバイスを提供します。 コードは、これらのオブジェクトを介して繰り返し、各デバイスに対して

ManagementObjectSearcher、およびManagementObjectを抽出します。 結果として得られるDeviceIDオブジェクトは、デバイス管理やシステム診断など、さまざまなアプリケーションの包括的なデータを提供します。 このWMIアプローチは、Windows環境内の接続されたUSBデバイスの完全なリストを取得するための堅牢で効率的な方法を提供します。

以上がWMIを使用してWindowsで接続されたUSBデバイスの包括的なリストを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート