在VBA中引用Windows便携式设备文件的问题?

我不知疲倦地寻找解决scheme,但没有发现任何有用的东西! 所以我希望在这里有人可以帮助我的具体情况…预先感谢!

所以,我有一个条形码扫描器,将库存作为文本文件存储在内部存储器中。 通过使用Windows Mobile Device Center 6.1,我可以在个人电脑上浏览扫描仪文件夹,并打开该文本文件以查看扫描的项目。

我正在写一个excelmacros,将打开该文本文件,读取每一行清单,然后用它做其他事情。 如果我将扫描仪上的文本文件复制到“我的文档”等地方,我已经取得了成功。 不过,我想使它容易,并能够直接从扫描仪打开该文本文件。

我的问题是参考扫描仪的path。 因为它是一个便携式设备,它没有像C:这样的驱动器。 相反,path看起来像“Computer \ MT2070-ML416147 \ Application \ Inventory \ export.txt”。 但是,当我尝试打开该path的input时,我得到一个错误,说“找不到path”。

如果任何人都可以协助,我会非常感激! 如果有人需要我的代码片段,请让我知道。

没有办法通过Windows文件系统API访问连接的Windows CE设备文件系统的内容,这是因为它们没有装入卷。 您的设备出现在Windows资源pipe理器中,因为WMDC会安装一个shell命名空间处理程序,该处理程序将创build代表所连接设备的shell文件夹 – 这与“控制面板”和“networking位置”文件夹的工作方式相同,尽pipe它们也不是真正的文件系统目录。 把它想象成Windows在文件系统抽象上挥手。

一切都没有丢失,但是,你有几个select:

  1. 使用智能设备连接API浏览设备并从中获取数据文件: https : //msdn.microsoft.com/en-us/library/bb384093.aspx – 这是Explorer在显示时使用的相同API你shell设备的文件夹。
  2. 从设备中取出存储空间(如SD卡),并将其插入计算机上的SD卡读卡器,以便您可以直接浏览和操作文件系统。
  3. 编写一个在设备上运行的程序,将数据从设备推送到共享位置。

选项1将得到最好的结果,但可能需要在C ++ / Win32中对它进行编码。 VBA并不是用来进行系统编程的最佳环境。您可以随时使用C ++编写代码,并将您的图层作为COM对象公开,然后通过VBA使用。 虽然你会遇到Office的32/64位问题,也可能是沙盒问题。

由于Windows CE的“Windows Mobile”风格的最后一个SDK是针对Visual Studio 2008发布的,因此选项3会稍微困难一点 – 不支持更新版本的VS. 这意味着对WinCE API使用无效的Compact Framework 3.5或C ++ 03。 巧合的是,我相信这是Windows Mobile注定iPhone出现的部分原因:环境太被忽视了,背后跟不上。

检查您的设备是否可以通过Shell.Application ActiveX进行访问。 以下是显示“打印机和传真”位置中所有项目的示例:

 Sub Test() Set objShellApp = CreateObject("Shell.Application") Set objFolder = objShellApp.Namespace("::{2227a280-3aea-1069-a2de-08002b30309d}") ' Printers and Faxes Debug.Print "CLSID:" & vbCrLf & objFolder.Self.Path & vbCrLf Debug.Print "Folder name: " & vbCrLf & objFolder.Self.Name & vbCrLf For Each objItem In objFolder.Items() Debug.Print objItem.Name Next End Sub 

我的输出如下:

CLSID:
:: {2227A280-3AEA-1069-A2DE-08002B30309D}

文件夹名称:
打印机

传真
Microsoft XPS文档编写器
的PDFCreator
发送到OneNote 2013
…- P0086在…- s0002上
…- P0087在…- s0002上
…- P0049在…- S0002上
…- P0068在…- S0002上
…- P0067在…- S0002上

尝试另一个CLSID,如:

 ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} - Computer ::{00f2886f-cd64-4fc9-8ec5-30ef6cdbe8c3} - Scanners and Cameras ::{fb0c9c8a-6c50-11d1-9f1d-0000f8757fcd} - Scanners and Cameras ::{e211b736-43fd-11d1-9efb-0000f8757fcd} - Scanners and Cameras ::{0c15d503-d017-47ce-9016-7b3f978721cc} - Portable Device Values ::{35786d3c-b075-49b9-88dd-029876e11c01} - Portable Devices 

看看这里 , 这里和这里 。 如果您在其中一个显示的项目中find设备名称,那么您显然将能够从中检索该文件。