コード例 #1
0
ファイル: Program.cs プロジェクト: kaury/PodcastUtilities
        private static void EnumerateObjects(PortableDeviceManagerClass deviceManager, string deviceId)
        {
            var device = OpenDevice(deviceId);

            IPortableDeviceContent deviceContent;

            device.Content(out deviceContent);

            EnumerateContent(PortableDeviceConstants.WPD_DEVICE_OBJECT_ID, deviceContent, "");
        }
コード例 #2
0
        /// <summary>
        ///     Private default constructor
        /// </summary>
        private PortableDeviceCollection(string appName, float majorVersion, float minorVersion)
        {
            if (string.IsNullOrEmpty(appName))
                throw new ArgumentNullException("appName");

            deviceManager = new PortableDeviceManagerClass();
            portableDevices = new Dictionary<string, PortableDevice>();

            this.appName = appName;
            this.majorVersion = majorVersion;
            this.minorVersion = minorVersion;
            AutoConnectToPortableDevice = true;
        }
コード例 #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
        /// <summary>
        /// Private default constructor
        /// </summary>
        private PortableDeviceCollection(string appName, float majorVersion, float minorVersion)
        {
            if (string.IsNullOrEmpty(appName))
            {
                throw new ArgumentNullException("appName");
            }

            this.deviceManager   = new PortableDeviceManagerClass();
            this.portableDevices = new Dictionary <string, PortableDevice>();

            this.appName      = appName;
            this.majorVersion = majorVersion;
            this.minorVersion = minorVersion;
            this.AutoConnectToPortableDevice = true;
        }
コード例 #5
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);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: kaury/PodcastUtilities
        static void Main(string[] args)
        {
            var deviceManager = new PortableDeviceManagerClass();

            var devices = EnumerateAllDevices(deviceManager);

            foreach (var device in devices)
            {
                Console.WriteLine("========================================");
                Console.WriteLine("ID:\t{0}", device.Id);
                Console.WriteLine("Name:\t{0}", device.FriendlyName);
                Console.WriteLine("Description:\t{0}", device.Description);
                Console.WriteLine();

                EnumerateObjects(deviceManager, device.Id);

                Console.WriteLine("========================================");
                Console.WriteLine();
            }
        }
コード例 #7
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));
            }
        }
コード例 #8
0
 public PortableDeviceCollection()
 {
     this._deviceManager = new PortableDeviceManagerClass();
 }
コード例 #9
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 );
            }
        }