コード例 #1
0
        public void Refresh()
        {
            _deviceManager.RefreshDeviceList();
            Clear();

            // Determine how many WPD devices are connected
            var  deviceIds = new string[1];
            uint count     = 1;

            _deviceManager.GetDevices(ref deviceIds[0], ref count);

            if (count == 0)
            {
                return;             // no devices connected
            }
            // Retrieve the device ID for each connected device
            deviceIds = new string[count];
            _deviceManager.GetDevices(ref deviceIds[0], ref count);

            // Add devices to our collection
            for (int i = 0; i < deviceIds.Length; i++)
            {
                Add(new PortableDevice(deviceIds[i]));
            }
        }
コード例 #2
0
        private void RefreshDevices()
        {
            portableDevices.Clear();
            deviceManager.RefreshDeviceList();
            uint _countDevices = 1;

            deviceManager.GetDevices(null, ref _countDevices);
            var devicesIds = new string[_countDevices];

            deviceManager.GetDevices(devicesIds, ref _countDevices);
            countDevices = _countDevices;
        }
コード例 #3
0
        /// <summary>
        /// 枚举所有便携式设备(MTP模式)
        /// </summary>
        /// <returns>返回设备id数组</returns>
        private static string[] EnumerateDevices()
        {
            string[] devicesIds = null;
            PortableDeviceManagerClass deviceManager = new PortableDeviceManagerClass();
            uint deviceCount = 1;                            //设备数目初始值必须大于0

            deviceManager.GetDevices(null, ref deviceCount); //获取设备数目必须置第一个参数为null
            if (deviceCount > 0)
            {
                devicesIds = new string[deviceCount];
                deviceManager.GetDevices(devicesIds, ref deviceCount);
            }
            return(devicesIds);
        }
コード例 #4
0
        public static string[] GetDeviceIds()
        {
            var  deviceManager = new PortableDeviceManagerClass();
            uint deviceCount   = 1;

            deviceManager.GetDevices(null, ref deviceCount);

            if (deviceCount < 1)
            {
                return(new string[0]);
            }

            var deviceIds = new string[deviceCount];

            deviceManager.GetDevices(ref deviceIds[0], ref deviceCount);

            return(deviceIds);
        }
コード例 #5
0
        /// <summary>
        /// ポータブル デバイスを列挙します。
        /// </summary>
        /// <returns>ポータブル デバイスのコレクション。</returns>
        public static IEnumerable <WpdDevice> EnumDevices()
        {
            var m = new PortableDeviceManagerClass();

            uint count = 1;

            m.GetDevices(null, ref count);
            if (count == 0)
            {
                yield break;
            }

            var ids = new string[count];

            m.GetDevices(ids, ref count);

            foreach (var id in ids)
            {
                yield return(new WpdDevice(id));
            }
        }
コード例 #6
0
ファイル: WpdDevice.cs プロジェクト: gtaglang/WpdLib
        /// <summary>
        /// ポータブル デバイスを列挙します。
        /// </summary>
        /// <returns>ポータブル デバイスのコレクション。</returns>
        public static IEnumerable<WpdDevice> EnumDevices()
        {
            var m = new PortableDeviceManagerClass();

            uint count = 1;
            m.GetDevices( null, ref count );
            if( count == 0 ) { yield break; }

            var ids = new string[ count ];
            m.GetDevices( ids, ref count );

            foreach( var id in ids )
            {
                yield return new WpdDevice( id );
            }
        }