问题标签 [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.

0 投票
0 回答
1409 浏览

c# - c#简单WPD/PTP/MTP图像采集示例

我想构建一个超级简单的软件,它只在拍摄时从数码相机下载图像(网络共享)。

据我了解,我可以使用带有图片/媒体传输协议 (PTP/MTP) 的 Windows 便携式设备 (WPD) 来获取图像。

我在这里找到了如何开始使用 WPD 的示例:

还有几个问题:

  • WPD 甚至枚举外部硬盘驱动器 - 我怎么知道设备是否是相机?
  • 如果连接了另一台摄像机,我如何获得通知?
  • 相机拍照时如何收到通知?
0 投票
1 回答
1351 浏览

c# - 使用 WPD 将文件复制到 Windows Phone C#

我想通过 MTP 将至少一个文件复制到 Windows 手机。我可以按照本教程连接到手机并将文件从手机复制到计算机: WPD:传输内容 但是我无法以相反的方式复制文件(从计算机到手机)。这是我的代码:

我在几台设备上测试了这段代码。它适用于普通的 mp3 播放器,假设教程正确,它也适用于 Android 手机。但是用两个不同的 windows phone 运行这段代码,我得到以下异常:

在这一行:targetStream.Write(buffer, (int)optimalTransferSizeBytes, pcbWritten);

缓冲区大小为 262144 字节,而文件大小仅为 75 KB。我希望有人知道如何解决这个问题。

问候 j0h4nn3s

0 投票
0 回答
557 浏览

c# - WPD MTP 流在提交时挂起

我正在使用以下代码将由 FileInfo 对象包装的文件复制到使用 Windows 便携式设备 API 的 MTP 设备:

现在,这工作得很好,但是当编写一个小文件时,在这种情况下是一个只有几 kiB 的纯文本 .m3u 文件,该行

执行时间极长。写入几个 MiB 的文件时,没有任何问题。我想知道为什么会发生这种情况以及如何解决这个问题。谢谢!

0 投票
2 回答
1456 浏览

delphi - 在 Delphi 中确定 WPD 设备类型

我正在尝试确定我的 WPD 设备在 Delphi 中的类型。

在我的应用程序中,我需要知道设备是电话还是相机,或者它是什么。

根据这篇 MSDN 文章,WPD 设备类型是一个 WPD 设备属性,可以通过读取设备的属性来读取。

然后根据这篇 MSDN 文章,属性和属性被定义为 PROPERTYKEY 结构,包含两部分:类别 GUID 和该类别的唯一 ID。

我发现 GUID 和唯一 IDWPD_DEVICE_TYPEWPD_DEVICE_TYPE_FMTID : TGuid = '{26D4979A-E643-4626-9E2B-736DC0C92FDC}'; WPD_DEVICE_TYPE_PID = 15;

我的问题是我在弄清楚如何检索信息方面遇到了问题。

我原以为IPortableDevice会有一个.Property类似的过程IPortableDeviceContent,但事实并非如此。

但是,IPortableDeviceManager确实有一个名为GetDeviceProperty.

我有示例代码可以获取 WPD 设备的友好名称(来自 PortableDeviceApiLib_TLB.pas 单元)。

代码:

我用于获取设备属性的测试代码如下所示(基本上相同......几乎......):

根据这篇 MSDN 文章, pData应该设置为 NULL 并将 pcbData 设置为零,以便获得 pcbData 的大小。

我正在做的。

有人可以帮助解释我需要做什么才能做到正确吗?

编辑: 我发现这段代码似乎在 python中,它获取设备类型。

我正在尝试将其移植到delphi。

0 投票
1 回答
280 浏览

api - 检索 WPD 设备的挂载点

我已经使用 WPD API 有一段时间了,我似乎在一个又一个问题中遇到了问题。

一旦我解决了一个问题,就会出现其他问题。但是,嘿,这就是生活。

我一直在尝试确定 WPD 设备是存储设备还是电话或其他设备。

事实证明,iPhone 等设备并未被设置为手机,而是在WPD_DEVICE_TYPE.

但是,它作为存储设备呈现给 Windows。

当连接外部硬盘驱动器、SD 存储卡读卡器和其他更传统的存储设备时,它们也能被 WPD API 识别,但在 Windows 中也会获得一个专用的挂载点。

如果我连接一个外部硬盘驱动器,它将有一个功能类别对象,该对象的值将是该驱动器的路径,例如E:

好的。伟大的!

所以我的问题是:如果 WPD 设备有挂载点,我该如何读取?当然,功能对象表明它有一个,但是是否有可能有一个指示值表明安装点可用?

0 投票
1 回答
8315 浏览

java - 桌面 java 应用程序通过 USB 复制和传输 android 数据

我有一个桌面 java 应用程序,还有一个 android 应用程序。两个应用程序一起工作。

桌面应用程序中的用户有一个按钮来启动设备数据应用程序与计算机应用程序之间的传输,反之亦然。

所以我需要使用简单的 USB 数据线传输数据,并且没有互联网连接/WiFi/蓝牙/adb。

我找到了两个适用于 Windows 的 Java MTP 库来解决我的问题,以及 android 的 USB 主机/附件功能:

  • jMTP成功识别我的 Android 设备、文件夹和其他东西

    我已成功在计算机中传输文件 ---> 设备,但是当我尝试在设备中传输文件时出现错误 ---> 计算机

    我把我的代码放在解释之后。

  • jusbpmp但我无法传输设备---> 计算机。

  • USB 主机/附件没有用,因为传输是从桌面应用程序启动的,当我在 android 开发者指南网站上阅读时,它似乎与我需要的不对应,或者如果用户从设备开始传输。

我尝试从 1 周到成功完成这项任务,但似乎我需要帮助。

Java + jMTP 代码

这是代码和错误的结果

我在互联网上读到 0x80070057 是一个通用的 windows 异常。

编辑:

Windows 站点针对 hr 错误 ERROR_INVALID_PARAMETER 0x80070057 说:应用程序提供的参数无效。

但我没有看到女巫参数无效


这是用于将数据设备传输到计算机的库的C类的链接,您可以看到我的错误行230。

这是我使用的 jMTP 库。

你能帮我吗,或者用其他方式来做我需要的事情(Usb4Java,libUSB)?我将不胜感激。

提前谢谢。

0 投票
1 回答
3084 浏览

c# - 将文件从 Android 传输到 Windows PC 时指定的文件路径是什么?

我将创建一个 c# windows 应用程序,用于将图像文件从 android 手机传输到我的 Wondows PC - 当我将手机与我的 PC 连接时(使用数据线)。当我在 C# 中给出路径“Computer/Nuxes5/...”以从移动设备访问文件时,(从 Windows 资源管理器地址栏中获取)。然后得到不正确的路径。以下是我提供的用于访问文件的代码。

任何人都可以建议我,如何使用 C# 访问移动文件。

0 投票
2 回答
3159 浏览

c# - 如何使用 USB 和/或 WPD 将文件从 Android 设备传输到 PC

我正在尝试通过电缆将 android 设备连接到(Windows 7 64 位)PC,然后以编程方式将一些文件从 android 检索到 pc。

(注意:我需要这个用于特定设备,Moverio BT-200,我有驱动问题;所以不要建议使用 adb ;-) 我知道这是简单快捷的方法,但它不可行)

我发现我的设备可以被视为 Windows 便携式设备 ( WPD )。我在 C# 中发现了一些非常好的代码示例,它们使我能够检测 WPD枚举其内容传输内容。我还在 C++ 中找到了一些代码,它完成了上述所有操作以及更多功能。只要我连接单个 sdcard 或 USB 密钥(即:只要我有一个被 Windows 识别并获得一个字母作为正确驱动器的设备),所有这些示例都像一个魅力,我得到当前文件的完整列表及其绝对路径。但是,如果我尝试连接 android 设备并列出内容,我会得到一些我不明白的东西:

怎么可能?浏览 C# 代码(上面的第二个链接),我发现在某些时候,代码会创建几个 GUID 对象,每个对象都有一些略有不同的参数:

但我无法弄清楚这些十进制值是如何工作的。在线文档似乎很少。我使用设备管理器{eec5ad98-8080-425f-922a-dabf3de3f69a} (

我找对地方了吗?我是否需要设置一些 GUID 或其他东西?

我将这个问题标记为 C# 和 C++,因为我发现了这两种语言的一些代码示例,但我愿意用任何语言(java、python、...)来解决这个问题

0 投票
1 回答
141 浏览

c# - 为应用程序存储 MSSQL LocalDB

我一直在使用 LocalDB.mdf 文件来构建我的应用程序,但现在需要在生产中使用它并创建一个可安装的应用程序。

经过研究,似乎存储此类文件的最佳位置是在/Appdata/Local/文件夹中。

如果它不存在或已被删除,我打算在那里创建一个新的 LocalDB.mdf 文件。

我的应用程序资源中有一个预制的 LocalDB.mdf 文件,我想/Appdata/Local/在第一次运行时将其复制到此文件夹中,但我看到 Access is denied 错误。

我可以为该文件夹创建一个空白文件。

这是代码:

另外,我是否以正确的方式进行此操作?

0 投票
2 回答
4741 浏览

c# - C#获取连接到PC的便携式设备

我正在尝试在 Windows 7 上获取所有 USB 设备(包括便携式设备),现在我搜索了所有内容,但没有找到好的答案。

我试过这段代码:

但我收到此错误:

互操作类型“portabledeviceapilib.portabledevicemanagerclass”无法嵌入

现在我很坚持。

如果您可以帮助我使用此代码/告诉我我应该尝试什么,我会很高兴

我所需要的只是获取连接了哪种类型的 USB,如果连接了手机,还是鼠标。我想知道什么是连接的。

提前感谢