【发布时间】:2011-09-03 23:00:42
【问题描述】:
我正在尝试使用 Windows Portable Devices API 和此 API 提供的 PortableDeviceManager 枚举 Windows 上连接的便携式设备。
我已经按照 MSDN 文档 link 和各种博客 link 实现了设备 ID 的枚举,但它们都导致了同样的问题 - 我只能得到它来给我 one 的 ID em> 设备当有多个连接时。
这是我正在使用的 C# 代码的 sn-p:
PortableDeviceManagerClass deviceManager = new PortableDeviceManagerClass();
deviceManager.RefreshDeviceList();
uint numberOfDevices = 1;
deviceManager.GetDevices(null, ref numberOfDevices);
if (numberOfDevices == 0)
{
return new string[0];
}
string [] deviceIds = new string[numberOfDevices];
deviceManager.GetDevices(ref deviceIds[0], ref numberOfDevices);
return deviceIds;
我有两台设备连接到我的电脑,一台可移动 USB 记忆棒和一台数码相机。当两者都处于活动状态时,只会返回我的相机的设备 ID。当我停用相机时,会返回可移动 USB 记忆棒的设备 ID。
有没有人对此 API 有经验,可以指出我做错的方向?
【问题讨论】:
-
对我来说,我尝试使用 PortableDeviceApiLib (COM) 但没有编译,我也没有找到任何完整的源示例工作。我也尝试使用 Win32ext_WPD 进行 WMI,但这对我来说很难。