问题标签 [wpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何创建 IPortableDeviceManager 的实例?
我正在尝试IPortableDeviceManager
使用该方法创建类的实例,CoCreateInstance(..)
但找不到该类的CLSID
aka GUID
。
我潜入 Windows SDK 试图找到GUID
但我唯一能找到的是文件中的以下行PortableDeviceApi.h
:
那也没有真正帮助我..
那么,我做错了什么?有什么办法可以找出来GUID
吗IPortableDeviceManager
?还是实例化它的一个实例?
windows - 如何使用 WPD 和 Setup API 将数码相机与其他设备区分开来
我有两个任务:
a) 将数码相机与其他 MTP 设备区分开来,由 IPortableDeviceManager::GetDeviceList 获得;
b) 我想使用 Setup API 查找已连接的数码相机。我的想法是先获取所有 USB 设备:
但是在这样做之后,我已经没有想法了。具体来说,我不知道如何获取特定 USB 设备的 USB 接口描述符。我的意思是 USB 接口,而不是设置 API 中所谓的接口。
提前致谢。
c++ - Windows MTP/WPD 与 Android 设备的通信
我正在开发一个在 Windows 上运行的 PC c++ 应用程序。应用程序应使用 MTP 与通过 USB 连接的安卓手机进行通信。想法是不安装存储卡。我发现 Windows 有一些他们称之为 WPD(Windows Portable Device)的东西,它支持 MTP。它看起来不错,但需要安装 WMP11。我想知道的是:
- 您可以使用其他替代库吗?
- 有人对使用 WPD 有任何提示或经验吗?
- 是否可以安装任何“更精简”的依赖项而不是 xp 的 WMP11?
任何帮助将不胜感激。
android - 将文件从 Android WPD 设备传输到 PC
我的 Android 应用程序生成了一些我需要与我的主 PC 程序同步的文件,反之亦然。我这样做的常用方法是使用 FTP 帐户,我的 Android 应用程序和我的 PC 程序都可以在其中获取最新版本的文件,这很好用。我的一些客户在他们的 Android 设备上没有互联网访问权限,因此必须通过使用 USB 电缆连接到 PC 来与我的程序同步。为此,我的 PC 程序中有一个例程,它将同步 Android 设备上指定文件夹中的文件。问题在于,这种方法只有在 Android 设备可以作为驱动器安装并因此被 Windows 分配驱动器号的情况下才有效。
某些设备,尤其是运行 Honeycomb 的平板电脑(我在三星 Galaxy 10.1 选项卡和联想 Thinkpad 平板电脑上体验过)不会作为驱动器安装,而是作为 Windows 便携式设备 (WPD) 连接。在这种情况下,我无法从我的程序(用 Delphi 编写)访问设备,因此我的文件同步例程不起作用。
我的例程必须知道要与之同步的文件夹的特定位置才能工作,所以如果我可以将文件从设备传输到 PC 上的临时文件夹,同步它们并可能将文件传输回设备上,那将解决我的问题。
谁能建议我可以将文件从 WPD 设备传输到我的 PC 上的文件夹并再次返回的方法?它必须自动化,因为我的客户无法手动传输文件。或者,有没有办法强制 WPD 设备充当普通的外部驱动器并分配驱动器号?
c++ - 所有带 WPD 的 MTP/PTP 摄像机列表
对于我的应用程序,我需要一个连接到计算机的所有 MTP/PTP 摄像机的列表。我正在使用以下代码生成系统上所有 WPD 设备的列表:
但这个列表还包括读卡器、扫描仪和其他设备。有没有一种简单的方法可以过滤掉这些设备,或者我真的需要打开每个设备并获取设备属性等?
android - 与 Android 平板电脑刷新 MTP 连接?
我使用 USB 电缆将三星 Galaxy Android 平板电脑连接到运行 Windows 7 的计算机。它使用 MTP 连接。
- 步骤 1. 通过 Windows 资源管理器将我的 SQLite 数据库从 Windows 7 复制到平板电脑。
- 步骤 2. 在平板电脑上打开它(添加 android_metadata 表),然后关闭它。
- 步骤 3. 将 SQLite 数据库复制回 Windows。
- 步骤 4. 使用 sqlite3.exe 检查它。这是腐败的。
现在进行另一个测试。
- 步骤 1. 通过 Windows 资源管理器将我的 SQLite 数据库从 Windows 7 复制到平板电脑
- 步骤 2. 断开然后重新连接 USB 电缆。
- 步骤 3. 在平板电脑上打开它(添加 android_metadata 表),然后关闭它。
- 步骤 3. 将 SQLite 数据库复制回 Windows。
- 步骤 4. 使用 sqlite3.exe 检查它。它没有腐败。
有趣的是,如果我切换步骤 2 和 3,它也可以工作。
由于它在我断开并重新连接 USB 电缆时起作用,我猜我需要以某种方式刷新 MTP 缓存。这是如何实现的,或者是否有一个 API 可以用来快速断开和重新连接设备?
我实际的 Windows 应用程序使用 WPD(Windows 便携式设备)API,我只是在使用 Windows 资源管理器进行测试,以证明它在我的 Windows 代码中没有问题。我在 WPD 中看不到任何可以刷新的内容。
当 Android 上的 SQLite 数据库增长一页(或更多)时,似乎会发生该错误。SQLite 中的页面大小为 512 字节。查看 SQLite 数据库的二进制数据,我可以看到发生了什么。我在设备上使数据库大一页,将数据库从设备上复制下来,拔下 USB,插入,然后再次复制。比较这两个文件,我复制usb数据后得到的文件是一样的,只是最后有更多的数据。就像 MTP 不知道文件更大,直到您拔下 USB 并重新插入。如果您将 USB 插入其中,它只会复制上次复制文件时的字节数。
windows - 如何以编程方式设置 Windows 便携式设备文件属性?
我的应用程序需要不使用WPD API直接访问便携式设备的内容。有人可以提供一些关于此的指示吗?
我dbcc_name
用作我的设备接口路径。当我试图打电话时,GetFileAttributes(dbcc_name)
我收到“拒绝访问”错误。如何正确设置便携式设备的 ACL?
我需要用来SetupDiSetDeviceRegistryProperty()
设置SPDRP_SECURITY
属性吗?
谢谢。
c++ - 如何获取给定 PIDL 的 IPortableDeviceContent 接口
我使用 SHBrowseForFolder() 在 MTP 设备上选择一个文件夹。然后我想从那里复制文件。IPortableDeviceContent 接口(来自 Windows Portable Devices SDK)似乎很合适,但是如何从 SHBrowseForFolder() 返回的带有 PIDL 的对象获取它?
(我问过关于获取 IWMDMStorageControl 接口的类似问题: How to get IWMDMStorageControl interface for given PIDL)
c# - Windows 便携式设备 API 和 WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE 命令
我目前正在为需要使用固定相机收集站在柜台前的人的照片的政府机构编写 C# windows 窗体应用程序。要收集照片,应用程序需要操作静态相机并检索图像。
该应用程序将在 Windows7 上运行,因此不支持 WIA(Windows 图像采集)。我使用 Windows 便携式设备 API 编写了代码,以从插入计算机的设备中获取支持的命令列表。
要让应用程序拍照,插入计算机(相机)的设备必须支持WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE
. 目前,我可以访问的相机(各种佳能 powershots)都不支持所需的WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE
命令,并且很多互联网搜索都没有显示支持该WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE
命令的相机列表。大多数相机支持存储命令,但不支持通过 Windows 便携式设备 API 以编程方式拍摄照片。
是否有人使用 Windows 便携式设备 API 和 WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE 命令成功拍摄并检索了照片?如果是这样,您使用的是什么品牌和型号的相机?
c# - 使用 WPD(Windows 便携式设备)API 传输图像文件时出错
我一直在尝试使用 WPD API 在 c# 中编写一个示例应用程序,用于将图像文件传输到连接的 WPD 支持的设备。我一直在关注这个链接。我的问题是每次我尝试传输文件时都会收到错误消息:值不在预期范围内。有没有人尝试过成功地做同样的事情。任何指针都受到高度赞赏。
下面是我面临错误的代码片段
错误出现在 targetStream.Write(... 下面是我设置参数的方式。我认为我正在设置的参数有问题,或者我缺少一些必需的参数。