问题标签 [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# - 如何使用 WPD 将文件传输到没有驱动器号的 Android 设备
对不起,我的英语不好,请帮我解决这个问题。我能够使用 WPD 从 Android 设备检索文件,但无法传输回 Android 设备。我按照https://dzone.com/articles/windows-portable-devices-0中的教程进行操作,但该方法仅适用于具有驱动器号的设备。谢谢你。
delphi - 如何枚举 MTP 和 PTP 设备
此答案解释了如何使用 WMI 按驱动器号查找附加的 USB 大容量存储设备,但我正在尝试查找附加的 MTP 或 PTP 设备的名称(或 UNC 路径),例如附加的相机或移动设备,它们没有安装驱动器号,这样我就可以爬取他们的目录来搜索图像。我怎样才能做到这一点?
windows - 如何从 WPD API 获取设备的根目录?
我想从 WPD API 获取 MTP USB 设备的所有根目录(我可以将它们识别为 GUID)。所以我的问题是:我怎么能做到这一点?任何代码片段将不胜感激。
c++ - 包含 PortableDevice.h 会导致很多错误
我阅读了这篇文章并刚刚在 VisualStudio 2017 中创建了一个 cpp 控制台项目,其中包括一些标头。
stdafx.h:
我所做的就是这个,我得到了很多错误。
我不知道如何处理这个问题,因为我不熟悉 Windows 开发,这是第一次创建 Windows 应用程序。我该如何解决这个问题或如何获得有关此的信息?
c++ - CoCreateInstance 返回 E_INVALIDARG
我一直致力于为 Golang 包装 WindowsPortableDevice Api。下面的 c++ 代码可以正常工作,但突然无法正常工作。
libgowpd.h:
libgowpd.cpp:
在戈朗
我想我pPortableDeviceManager
通过获取地址正确传递了指针,pPortableDeviceManager
但它返回0x80070057
错误代码(E_INVALIDARG
)。
我做错了什么?
c++ - WPD 获取媒体尺寸
我想通过 IPortableDeviceValues 获取 WPD 上图像文件的宽度和高度。
根据Windows 开发中心,每个类型为 WPD_CONTENT_TYPE_IMAGE 的对象(它们是)都需要提供 WPD_MEDIA_WIDTH/WPD_MEDIA_HEIGHT 但我总是收到错误消息。
我总是从
hr = 0x80070490 我在这里找不到这个错误代码
有谁知道出了什么问题?
c# - 如何获取 CD / DVD 驱动器上的文件更改通知?
我是 C# 新手,必须用 C# 开发一个 Windows 窗体应用程序。此应用程序应跟踪以下内容。
- 监控外部和内部的 CD/DVD 驱动器。
- 监控 CD/DVD 驱动器上创建、修改和删除的文件。
我可以RegisterNotification
通过跟踪方法WM_DEVICECHANGE
中的消息来获取 CD/DVD 驱动器插入的系统通知WndProc
。
上述实现让我知道何时将新设备连接到 PC。
我面临的问题是如何跟踪 CD/DVD 上发生的文件更改(写入/修改)。一种选择是将 CD/DVD 中的文件作为后台作业进行轮询。但是,这将是最后的选择。
我发现IMAPI
我们可以通过它写入 CD/DVD,但我只需要监视文件更改以进行审计。
请指出我如何在我的程序中接收 CD/DVD 通知上的文件更改的正确方向?
我已经尝试过FileSystemWatcher
,但它似乎不适用于 CD/DVD 驱动器。
2018 年 2 月 7 日更新:
我能找到的另一种方法是通过WMI
附加到WMI Events
. 我发现了一个问题Best way to detect dvd insertion in drive c#
也可以回答。我想知道在 WMI 中检测 DVD 文件系统修改是否可行,以及是否有专家可以共享相同的查询。我希望如果Arshad能够在这方面提供帮助。
c++ - IPortableDeviceEventCallback 无法正常工作(奇怪的行为)
我想在连接的手机上拍摄照片时在我的应用程序中接收回调 (WPD_EVENT_OBJECT_ADDED)。我实现了 WPD 客户端和 IPortableDeviceEventCallback,如Windows Dev Center中所示。
现在我的问题是,只有当我通过 Windows 资源管理器打开手机上的 DCIM/Camera 文件夹并且资源管理器开始为图像创建缩略图时,才会调用 IPortableDeviceEventCallback::OnEvent() 方法。在我这样做一次之后,我会收到来自手机的所有事件,直到我断开并重新连接它。但如果我不这样做,除非我断开电话,否则永远不会调用 onEvent()。
使用不同的 Android 和 iOS 手机进行测试。有谁知道发生了什么?
在我的 MTP 实现中,我注册了我的 DeviceEventsCallback() eventNotifier
我的 open() 函数如下所示:
driver - 如何从windows上层过滤器中获取过滤后的目标设备信息
我正在为 WPD 设备编写一个上层过滤器。我为 Read/Write/Ioctl 指定了回调函数,从回调声明中我可以得到 WDFQueue、WDFRequest。
但是从参数队列或请求中,我只能得到由我的驱动程序创建的设备信息。有什么方法可以检索我的驱动程序当前正在过滤的附加设备的信息?(例如,从内核日志中我可以看到对我的 android 设备的 ioctl 请求,但我不知道如何获取 android 设备对象获取设备名称)
python-3.x - 如何关闭在 Python/pythoncom/comtypes 中打开的 Windows 便携式设备 IStream
我在 python 中使用带有 pythoncom 和 comtypes 的 Windows 便携式设备。
我遇到了麻烦,因为当我请求 WPD_RESOURCE_THUMBNAIL 资源时,一些 android 设备返回一个“方形”缩略图,而原始图像具有 16:9 格式(或 4:3 ...)。
然后我尝试请求 WPD_RESOURCE_DEFAULT 资源以从 EXIF 数据中获取缩略图:因此无需读取整个文件,一旦获得缩略图的 EXIF 标签,我可以停止读取并跳到下一个文件。
我可以从 EXIF 中获取第一个文件的缩略图。在第二个文件上,我卡在 GetStream() 方法上。它只是挂起。我想是因为上一次调用的 IStream 没有关闭/处理。
您对如何强制此 IStream 的 Dispose / Close 有任何想法吗?
这就是我在代码中所做的:
提前感谢您对此的任何建议。
编辑:由于我没有找到其他方法来中断流并释放所有资源,因此我最终读取了 WPD_RESOURCE_DEFAULT 的整个流。它有点慢,但更安全,因为应用程序也在大屏幕上运行,并且使用 EXIF 的缩略图会导致屏幕上的图像质量很差。因此,我决定为此目的读取 WPD_RESOURCE_DEFAULT 的整个流,并在这一点之外的某个地方加速代码。感谢@ShadowRanger 的支持。