浏览文件夹无法看到相机设备

时间:2010-06-09 13:05:19

标签: delphi winapi

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

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

不幸的是,我无法获得SHBrowseForFolder(我在网上找到的代码但不明白)或SelectDirectory以查看其下方的摄像头设备或文件夹。 (附注:IMO,SelectDirectory是一个更好的UI,因为用户可以在浏览时看到文件夹中的文件。)

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

我见过一些技巧,你可以通过'*'来调用TOpenDialog来浏览文件夹。然后在结果上使用ExtractFileDir,但这不健壮,或IMO,一个很好的用户界面。

我正在寻找的是“浏览文件夹”,可以看到相同的设备(包括相机设备)TOpenDialog& Windows资源管理器可以看到(理想情况下,它会像下面那样具有漂亮的外观!)

有什么建议吗?

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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