用WPD复制文件到Windows Phone C#
我想通过MTP将至少一个文件复制到Windows Phone. 在本教程之后,我能够连接到手机并将文件复制到计算机: wpd:转移内容 但是,我无法以相反的方式复制文件(从计算机到电话). 这是我的代码: IPortableDeviceContent content; this._device.Content(out content); IPortableDeviceValues values = GetRequiredPropertiesForContentType(fileName, parentObjectId); PortableDeviceApiLib.IStream tempStream; uint optimalTransferSizeBytes = 0; content.CreateObjectWithPropertiesAndData( values, out tempStream, ref optimalTransferSizeB
4 2024-04-21
编程技术问答社区
Windows XP上的WPD/WIA的替代品?
WPD的问题: IPortableDeviceManager.GetDevices呼叫在Win XP上找不到任何设备,而它在Windows 7上找到所有连接的摄像机. 其他一些人也遇到了同样的问题,因为WPD不在XP上工作,没有解决方案: 我决定使用WIA重新实现功能. WIA自动化/WIA接口的问题: WIA automation与相机交互时仅提供愚蠢的对话 - 我需要从代码 进行此操作. 建议针对WIA interfaces进行编程,以通过WIA实现较低级别的任务.我没有找到任何示例如何使用C#中的WIA接口(还发现某些迹象表明这是完全不可能的,或者至少很难做) 因此,我看了Wia 2.0(Wiaaut.dll周围的包装器): 我首次获得Hresult 0x80210006(WIA_ERROR_BUSY),然后在Windows 7上的Win XP上一直在Win XP上Hresult E_Fail相同的代码无问题. 我在这里找不到选项...
4 2024-04-21
编程技术问答社区
从Windows的C#佳能SDK与PTP或MTP中抓取图片
我希望获得一些有关实现一个看似简单的目标的一般指导.我有一个数码单反相机(佳能EOS 50D),需要编写一个应用程序,该应用程序告诉相机拍照.我还需要将图片转移到计算机上,并可能从相机的存储空间中删除.奖励是在我的应用程序中获得相机的实时预览.我的环境将是Windows(XP Pro或Vista Enterprise)和.NET 3.5(C#). 我做了一些研究并找到了一些选择.我知道会工作的人,但将来只能使用佳能摄像机.我已经从佳能找到并下载了SDK,该SDK提供了许多此功能.我查看了SDK,虽然它很广泛并且用C编写,但确实有C#包装器可以加快开发的速度. 我发现的另一个选项称为Windows Portable设备.显然,这是一个API,它将与实现PTP和MTP标准的设备进行对话.它是基于com的,据我所知,它没有.NET包装器.但是,这不是表演的阻止者.我可以/调用我需要的功能或编写托管的C ++ DLL以与相机交谈. 我正在寻找具有WPD经验的人,以给我指示.我仔
4 2024-04-19
编程技术问答社区
在C#中列举Windows便携式设备
我正在尝试使用Windows Portable设备API和该API提供的ProtableDeviceManager列举Windows上的可移植设备. 我已在MSDN文档之后实施了设备ID的枚举这是我正在使用的C#代码的片段: 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.Ge
2 2024-04-12
编程技术问答社区
检索WPD设备的挂载点
我已经与WPD API合作了一段时间,我似乎在问题后遇到问题. 我解决了一个问题后,其他问题就会弹出.但是,嘿,那是生活. 我一直在尝试确定WPD设备是存储设备还是电话或其他. 事实证明,诸如iPhone之类的设备未被设置为手机,而是用WPD_DEVICE_TYPE的通用设备. . 但是,它以存储设备的形式显示给Windows. 连接外部硬盘,SD存储卡读取器和其他更常规的存储设备时,也会被WPD API识别,但是EHY也可以在Windows中获得专用的安装点. 如果我连接外部硬盘驱动器,它将具有一个功能类别对象,该对象的值将是该驱动器的路径,例如E:. 很好.太好了! 所以我的问题是:如果WPD设备具有安装点,我该如何以某种方式阅读? 确保功能对象表明它具有一个,但是是否有可能有一个指标值,该值指出可用的安装点? 解决方案 检查设备ID,这是一个示例它们的不同之处: \\?\ swd#wpdbusenum #_ ?? _ us
28 2024-03-01
编程技术问答社区
从安卓WPD设备向电脑传输文件
我的Android应用程序会生成一些我需要与主PC程序同步的文件,而另一种方式.我这样做的常见方法是使用一个FTP帐户,在该帐户中,我的Android应用程序和我的PC程序都获得了最新版本的文件,这很好.我的某些客户在其Android设备上没有互联网访问,因此必须通过使用USB电缆连接到PC来与我的程序同步.为此,我在PC程序中有一个例程,该程序将在Android设备上指定的文件夹上同步文件.问题在于,仅当可以将Android设备安装为驱动器时,此方法才能有效,因此可以通过Windows分配一个驱动器字母. 某些设备,尤其是运行蜂窝的平板电脑(我已经在三星Galaxy 10.1 Tab和Lenovo ThinkPad平板电脑上体验了此设备),不会以驱动器的形式安装,而是将其作为Windows Portable设备(WPD)连接.在这种情况下,我无法从程序(用Delphi编写)访问该设备,因此我对文件进行同步的例程不起作用. 我的例程必须知道文件夹的特定位置要同步工作,因此,如
6 2024-02-03
编程技术问答社区
桌面java应用通过USB复制和传输安卓数据
我有一个桌面Java应用程序,还有一个Android应用程序.两个应用程序一起工作. 桌面应用程序中的用户有一个按钮来启动设备数据应用程序之间的传输,反之亦然. 因此,我需要使用简单的USB电缆传输数据,而没有Internet连接/WiFi/bluetooth/adb. 我找到了两个Java MTP库,可以在Windows上工作以解决我的问题,而Android的USB主机/ACCERORY fonctionnality: JMTP 成功识别我的Android设备,文件夹和其他内容 我成功地将文件传输到计算机--->设备中,但是当我尝试在设备中传输文件时,我有一个错误--->计算机 我将代码放在解释之后. USB主机/ACCESORY 不用,因为转移是从桌面应用程序启动的,并且当我在Android Developper Guide网站上阅读时,它似乎与我的需求不符,或也许如果用户开始从设备转移. 我尝试从1周到这项任务的成功,但似乎我需要帮助
4 2024-01-31
编程技术问答社区
与安卓平板电脑的同花顺MTP连接?
我将带有USB电缆的三星Galaxy Android平板电脑连接到运行Windows 7的计算机.它使用MTP连接. 步骤1.通过Windows Explorer将我的SQLite数据库从Windows 7复制到平板电脑. 第2步. 步骤3.将SQLITE数据库复制回Windows. 步骤4.使用sqlite3.exe检查它.这是腐败的. 现在另一个测试. 步骤1.通过Windows Explorer将我的SQLite数据库从Windows 7复制到平板电脑 步骤2.断开连接,然后重新连接USB电缆. 步骤3.在平板电脑上打开它(添加Android_Metadata表),然后将其关闭. 步骤3.将SQLITE数据库复制回Windows. 步骤4.使用sqlite3.exe检查它.它没有损坏. 有趣的是,如果我切换步骤2和3,它也有效. 由于我断开并重新连接USB电缆时它可以正常工作,所以我猜我需要以某种方式冲洗MTP缓存.如何实现这一目标,或者我
26 2024-01-30
编程技术问答社区
在安装windows 10创作者更新1703后,将数据复制到便携设备上时出现System.AccessViolationException
我正在尝试使用此代码段将内容传输到便携式设备 IPortableDeviceValues values = GetRequiredPropertiesForContentType(fileName, parentObjectId); IStream tempStream; uint optimalTransferSizeBytes = 0; content.CreateObjectWithPropertiesAndData( values, out tempStream, ref optimalTransferSizeBytes, null); System.Runtime.InteropServices.ComTypes.IStream targetStream = (
10 2024-01-09
编程技术问答社区
如何获得CD/DVD驱动器上的文件更改通知?
我是C#的新手,必须在C#中开发Windows Form应用程序.此应用程序应跟踪以下内容. 监视CD/DVD驱动外部和内部. 监视在CD/DVD驱动器上创建,修改和删除的文件. 我能够通过RegisterNotification获得CD/DVD驱动器插入的系统通知,并通过跟踪WM_DEVICECHANGE WndProc方法中的消息. 上述实现让我知道何时将新设备连接到PC上. 我面临的问题是如何跟踪CD/DVD上发生的文件更改(写入/修改).一种选项是对CD/DVD中的文件进行轮询,作为后台作业.但是,这将是最后一个选择. 我找到了IMAPI,我们可以写入CD/DVD,但我只需要监视文件更改以审核目的. 请指出正确的方向,即如何在程序中的CD/DVD通知上更改文件? 我尝试了FileSystemWatcher,但似乎与CD/DVD驱动器不起作用. 更新于2018年7月7日: 我能找到的另一种方法是通过WMI查询,该查询附加到 W
18 2023-12-10
编程技术问答社区
有没有检测MTP设备的Windows API?
我正在寻找通过Windows API来检测MTP设备,而不仅仅是已经连接的设备的枚举. 解决方案 开始,请考虑查看: 其他解决方案 那将是其他解决方案 详细说明MSALTER的答案,您可能会为您的答案提供帮助-e c ++ win32不接收dbt_devicearrival或dbt_deviceremovecomplete wm_devicechange 基本摘要如下: 在处理WM_CREATE消息时,请致电RegisterDeviceNotification,要么通过USB类GUID进行过滤为第二个参数,要么将DEVICE_NOTIFY_ALL_INTERFACE_CLASSES作为与所有USB设备类一起使用的第三个参数 在处理WM_DEVICECHANGE消息时,将消息的lParam字段投放到PDEV_BROADCAST_HDR struct,如果其dbch_devicetype字段表示它是DBT_DEVTYP_DEVICEINTERFACE,请进一步
6 2023-12-06
编程技术问答社区
如何为给定的PIDL获得IPortableDeviceContent接口
我使用shbrowseforfolder()在MTP设备上选择一个文件夹.然后,我想从/到那里复制文件. Iportabledevicecontent接口(来自Windows Portable设备SDK)似乎合适,但是如何使用PIDL将其获取,从Shbrowseforfolder()返回? (我问了有关获得IWMDMStorageControl接口的类似问题: 如何获得给定的PIDL ) 解决方案 我们可以以这种方式获得与shbrowseforfolder()相关的显示名称: TCHAR DisplayName[MAX_PATH]; // we will get it here LPITEMIDLIST pidlSelected = SHBrowseForFolder( &bi ); if ( pidlSelected && ! SHGetPathFromIDList(pidlSelected, DisplayName) ) { // it is media devi
16 2023-12-06
编程技术问答社区
Winapi访问没有驱动器字母的USB存储的电话?
我已经注意到,某些USB存储设备没有在Windows中注册为常规驱动器,因为它们甚至没有被分配给驱动器字母.因此,我显然无法使用标准文件操作C API访问它们. Winapi我可以用什么来在那些奇怪的设备上进行一些正常的文件操作 - 因此: 完全枚举/枚举这些设备, 浏览设备上的文件/目录树,并获取一些文件统计(大小,修改日期等), 读/写文件的内容, 创建/删除文件/目录? 另外,这些设备/协议已知/称为? 的一般关键字是什么 解决方案 如果您在谈论移动设备看起来像安装的量,但没有任何安装点,则它们被称为 Windows Portable设备 and 它们不是安装的量强>. Windows无法直接访问文件系统,它仅通过媒体传输协议与它们通信rel =" nofollow"> mtp )或 图片传输协议( ptp ptp )并创建 shell名称空间扩展名向用户提供虚拟文件夹. 如果您想与此类设备进行通信,那么您很可能想使用 wpd api .
26 2023-12-04
编程技术问答社区
在VBA中引用Windows便携设备文件时遇到困难?
我一直在不懈地寻找解决我的问题的解决方案,但没有发现任何有帮助的问题!因此,我希望这里有人可以帮助我的具体情况...谢谢! 因此,我有一个条形码扫描仪,该条形码扫描仪将库存存储在其内部内存中作为文本文件.通过使用Windows移动设备中心6.1,我可以在PC上浏览扫描仪文件夹,并打开该文本文件以查看我扫描的项目. 我正在编写一个Excel宏,该宏将打开该文本文件,读取每一行库存,然后对其进行其他操作.到目前为止,如果我将扫描仪上的文本文件复制到"我的文档"之类的某些地方,我已经成功了.但是,我想让它变得容易,并能够直接从扫描仪打开该文本文件. 我的问题是引用扫描仪的路径.因为它是一种便携式设备,所以它没有C:或其他类似驱动器.相反,该路径看起来像"计算机\ MT2070-ML416147 \ Application \ inteptory \ exportory \ export.txt'.但是,当我尝试打开输入路径时,我会发现一个错误,说"找不到路径". 如果有
12 2023-11-15
编程技术问答社区
在Visual Basic .NET中访问一个MTP/WPD设备
是否有任何可用于vb.net的库可以使我轻松访问MTP设备?我希望能够找出连接了哪些设备,列出它们的内容并从它们复制文件. 我到目前为止看到的所有内容(在堆栈溢出,Microsoft网站上或使用简单的Google搜索)都在C ++,C#中,或其他不是VB.NET的语言. Microsoft文档完全落在了我的头上. 结果,除非我打算学习一种新语言,否则这都是不开始的. 我确实找到了 mtpsharp ,这给了我希望.但是,没有文档,似乎没有完全实施,我试图做某些事情返回例外的尝试,作者告诉我,它是针对我不应该使用的旧API,无法帮助我的我有问题. 想要使用vb.net的人真的没有希望? 解决方案 窗口便携式设备类LIB 注意:这是 Christophe Geers 的作品,这些博客可以在此处找到 我主要添加了一些功能,一个VB控制台测试,并将其转换为类LIB.我对代码中的一些内容进行了调整以简化它,但不值得进一步提及. 文档: 研究
22 2023-11-14
编程技术问答社区
在Delphi中确定WPD设备类型
我正在尝试确定Delphi中的WPD设备是哪种类型. 在我的应用程序中,我需要知道该设备是手机还是相机还是它是什么. 根据然后根据我找到了WPD_DEVICE_TYPE的Guid和Uinique ID WPD_DEVICE_TYPE_FMTID : TGuid = '{26D4979A-E643-4626-9E2B-736DC0C92FDC}'; WPD_DEVICE_TYPE_PID = 15; 我的问题是我正在弄清楚如何检索信息. 我期望IPortableDevice像IPortableDeviceContent一样具有.Property的过程,但事实并非如此. 但是,IPortableDeviceManager确实有一个称为GetDeviceProperty的过程. 我有示例代码,可以获取WPD设备的友好名称(来自单元portabledeviceapilib_tlb.pas). 代码: function GetDeviceFriend
2 2023-10-30
编程技术问答社区
shell32 copyhere在.Net和Powershell脚本中都不能工作。
有一个PowerShell脚本可以通过编程MTP在PC和Android之间复制文件,请参见 access-file-system-against-mtp-connection ,它在powerShell控制台下运行时起作用,然后我制作了一个脚本: : function Usage() { echo "Usage:mtpcmd cp srcfile dstfolder" } function main { param($mainargs) # echo "args2:$mainargs" if(-not($mainargs.length -eq 2)) { Usage return } $srcfile=$mainargs[0] $dstfolder=$mainargs[1] $phone = Get-ChildShellItem | where { $_.Path -like
52 2023-06-13
编程技术问答社区
如何为MTP设备构建路径(可用于文件夹浏览对话框)?
我实现了从Windows PC到Android设备的文件传输,该设备与MTP连接到计算机.复制实现已准备就绪(我使用了此示例:). 现在,我想改进UI,我想提供一个文件夹选择对话框,用户可以在其中选择一个MTP设备文件夹,我将在其中保存文件(clsid_fileopendialog,with fos_pickfolders效果很好).请注意,简单的文件保存对话框不起作用,因为您将从对话框中获得错误:"您无法在这里保存". 文件夹浏览的结果与此相似: :: {20D04FE0-3AEA-1069-A2D8-08002B30309D} \\?\ usb#vid_04e8&pid_6860&mi_00#6&2296b879&0000# {10001,SECZ9519043CHOHB,12635222016} {01B8016B-0164-00F2 -E100-55012C014001} USB#VID_04E8&PID_6860&MI_00#6&2296B879&0&000
22 2023-05-21
编程技术问答社区
在Netbeans中包括本机库
我试图从Java签名的小程序中读取便携式设备. 我在 http://code.google.com/p/jmtp/w/list 要访问便携式设备,但是当我在Netbeans中运行它时,会出现错误 Exception in thread "main" java.lang.UnsatisfiedLinkError: no jmtp in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at jmtp.PortableDeviceManagerImplWin32.(PortableDeviceManagerImpl
28 2023-04-21
编程技术问答社区
通过WPD访问MTP供应商的扩展属性
我正在使用Windows Portable设备API访问某些MTP设备.我想阅读设备的供应商扩展属性,它应该看起来像这样: " microsoft.com/wpdna"或" microsoft.com/mtpz" 看来这应该是一项非常简单的任务,但我无法弄清楚. 我已经能够在设备上枚举对象并传输文件,依此类推. dd389001(v = vs.85).aspx" rel =" nofollow"> wpdapisample应用程序. 我还找到了本文我认为我想做的是.但是我不明白如何创建这些查询. 解决方案 没有进入代码,简短的答案是扫描一系列PID,以查看其中有哪些数据.这是一次调试练习,仅用于发现目的.我基本上只是写一个循环:例如,如果我想在基本的扩展属性下扫描前16个PID,您将使用WPD_PROPERTIES_MTP_VENDOR_EXTENDED_DEVICE_PROPS作为格式化,然后以PID在每次迭代上更改它,并通过扫描值0xD101通过0xD
104 2023-03-02
编程技术问答社区