【问题标题】:Browse for folder can't see camera device浏览文件夹看不到相机设备
【发布时间】:2011-03-01 15:57:39
【问题描述】:

在 Delphi 2010 中,我希望允许用户浏览并选择一个文件夹。该文件夹位于由 DSLR 创建的设备 (?) 上。

如上所示,该文件夹在 Windows 资源管理器中可见。而且,该文件夹在 TOpenDialog 中可见,允许他们浏览文件夹并选择一个文件

不幸的是,我无法获得 SHBrowseForFolder(我在网上找到但不理解的代码)或 SelectDirectory 来查看它下面的相机设备或文件夹。 (旁注:IMO,SelectDirectory 是一个更好的 UI,因为用户可以在浏览时看到文件夹中的文件。)

我认为这与文件夹位于相机软件创建的设备 (?) 中的事实有关。

我见过一些技巧,您可以调用 TOpenDialog 来浏览带有“*”的文件夹。然后是结果的 ExtractFileDir,但这并不可靠,或者,IMO,一个好的 UI。

我正在寻找的是一个“浏览文件夹”,它可以看到 TOpenDialog 和 Windows 资源管理器可以看到的相同设备(包括相机设备)。 (理想情况下,它应该具有如下图所示的漂亮外观!)

有什么建议吗?

后来:Capture Images from Camera connected to Computer and listed in Imaging Devices 有我要找的东西。

【问题讨论】:

    标签: delphi winapi


    【解决方案1】:

    您在其中看到的文件夹是由 Windows 资源管理器的扩展程序创建的,它不是“驱动器”。它在那里,您可以使用 Windows 资源管理器轻松地将内容复制进出设备。所有操作都可能由 Windows Explorer Extension 处理。可以这样想:该设备上的文件有什么 PATH?如果没有文件的 PATH,您将无法从任何 Windows 应用程序中真正打开它!

    进入你的数码单反相机的菜单,找到告诉它通过 USB 连接到 PC 时要做什么的设置,然后将其更改为“存储设备”(任何看起来不是专有的,你可能有 2 个或3 个选项)。默认情况下,您的 DSLR 设置为允许它与 PC 上运行的相机自动化软件对话的模式!一旦您将该设置更改为“存储设备”,Windows 将像对待任何其他 USB 存储设备一样对待它,为其分配一个驱动器号,您将能够从您的 Delphi 应用程序访问它。或者像大多数数码单反相机用户一样,将卡片从数码单反相机中取出,然后放入读卡器中。

    编辑:从图片中的名称来看,您拥有的是佳能 350D 相机。转到最右侧的设置菜单,找到通信选项,将其设置为“PC 连接”。默认值为:“打印/PTP”。如果您真的想通过 Print/PTP 协议使用相机,您很可能可以,但您需要寻找特定的 API,因为在这种模式下您的相机存储不会映射到您的文件系统,所以您可以t 以文件和文件夹的形式打开内容。

    【讨论】:

    • 谢谢,科斯敏。使用您帖子中的术语 PTP,我能够找到一个应该能够读取(某些)佳能相机的 Delphi 组件:alkenius.no-ip.org/TCamRemote。我还没有尝试过。我还发现了一个声称允许为 PTP 设备分配驱动器号的程序:www.ptpdrive.com。漂亮的网站,但是注册 dll 时安装程序崩溃。供应商未能回复电子邮件......这是一个很有前途的程序,如果它可以工作的话! PS 供您参考,相机的 PTP 文件可在 Windows 资源管理器中浏览。它不需要 IE..
    • 哦,我的错,我不想说 Internet Explorer,我想说 Windows Explorer。我将编辑我的答案以反映这一点。
    • 关于 www.ptpdrive.com:这不适用于数码单反相机,因为数码单反相机可以配置为通过 USB 连接时显示为大容量存储设备。当他们可以翻转相机上的设置并在本地获得相同的东西(驱动器号)时,为什么会有人为黑客付费,而不涉及黑客?我认为该软件适用于仅支持 PTP 的少数相机(有吗?)。
    【解决方案2】:

    这是因为它是一种特殊设备,而不是固定驱动器或闪存驱动器。我以前经常遇到这个问题。您必须保存到某个地方并使用资源管理器进行复制。

    【讨论】:

    • 太可惜了——delphi 不知道热插拔设备吗?
    • >> delphi 不知道热插拔设备吗?好吧,很明显 Delphi 使用的 一些 组件可以看到热插拔设备,因为 TOpenDialog 看到了相机。
    猜你喜欢
    • 2019-12-26
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多