2010-06-09 5 views
1

В Delphi 2010 я хочу разрешить пользователям просматривать и выбирать папку . Папка находится на устройстве (?), Созданном DSLR.Просмотр папки не может видеть устройство камеры

Папка видна в проводнике Windows, как показано выше. И папка видна в TOpenDialog, позволяя им просматривать папку и выбирать файл .

К сожалению, я не смог получить ни SHBrowseForFolder (код, который я нашел в Интернете, но не понимаю), либо SelectDirectory, чтобы увидеть устройство камеры или папку под ним. (Замечание: IMO, SelectDirectory - намного более удобный пользовательский интерфейс, так как пользователь может видеть файлы в папках во время просмотра.)

Я предполагаю, что это связано с тем, что папка находится на устройстве (?) созданный программным обеспечением камеры.

Я видел несколько трюков, где вы вызываете TOpenDialog для поиска папок с помощью *. а затем ExtractFileDir на результат, но это не является надежным или, ИМО, хорошим пользовательским интерфейсом.

Что я ищу - это «Обзор папки», в которой могут отображаться одни и те же устройства (включая устройство камеры), то есть TOpenDialog &. (В идеале это выглядело бы так, как показано ниже!)

Любые предложения?

Позже: Capture Images from Camera connected to Computer and listed in Imaging Devices имеет то, что я искал.

ответ

1

Папка, которую вы видите там, составлена ​​расширением для Windows Explorer, это не «диск». Это так, что вы можете легко скопировать материал на устройство и вне его. Использование проводника Windows. Все операции, вероятно, обрабатываются расширением проводника Windows. Подумайте об этом так: Какая у PATH файл на этом устройстве? Без PATH в файл вы не сможете открыть его из любого приложения Windows!

Перейдите в меню вашей камеры DSLR, найдите параметр, который сообщает ему, что делать при подключении через USB к ПК, и измените его на «Устройство хранения» (все, что не выглядит проприетарным, возможно, у вас есть 2 или 3 варианта). По умолчанию ваш DSLR установлен в режим, который позволяет ему разговаривать с программным обеспечением для автоматизации камеры, работающим на ПК! Как только вы измените этот параметр на «устройство хранения», Windows будет рассматривать его как любое другое запоминающее устройство USB, назначит ему букву диска, и вы сможете получить к ней доступ из своего приложения Delphi. Или сделайте то, что делают большинство владельцев DSLR, выньте карту из своей DSLR и поместите ее в устройство для чтения карт.

Редактировать: От имени на картинке у вас есть камера Canon 350D. Перейдите в самое правое меню настроек, найдите параметр «Связь» и установите его «Соединение с ПК». Значение по умолчанию: «Печать/PTP». Если вы действительно хотите работать с камерой по протоколу Print/PTP, вы, скорее всего, можете, но вам нужно искать определенные API, потому что в этом режиме хранилище вашей камеры не отображается в вашу файловую систему, t открывать материал как файлы и папки.

+0

Спасибо, Cosmin.С термином PTP с вашего поста я смог найти компонент Delphi, который, как предполагается, сможет читать (некоторые) камеры Canon: http://alkenius.no-ip.org/TCamRemote/. Я не пробовал. Я также нашел программу, которая утверждает, что позволяет назначить букву диска устройству PTP: www.ptpdrive.com. Красивый веб-сайт, но программа установки сбой при регистрации DLL. Поставщик не смог ответить на электронную почту ... Это многообещающая программа, если она просто сработает! PS Для вашей информации, файлы PTP камеры были доступны для просмотра в Проводнике Windows. Это не требовало IE .. – RobertFrank

+0

О, моя ошибка, я не хотел сказать Internet Explorer, я хотел сказать Windows Explorer. Я отредактирую свой ответ, чтобы это отразить. –

+0

О сайте www.ptpdrive.com: Это не для DSLR, поскольку DSLR могут быть настроены так, чтобы отображаться как устройства массового хранения при подключении через USB. Зачем кому-то платить деньги за хак, когда они могут перевернуть настройку на камеру и получить то же самое (букву диска) изначально, никаких взломов? Я предполагаю, что программное обеспечение для меньшинства камер (есть ли какие-либо?), Которые поддерживают только PTP. –

0

Это потому, что это специальное устройство, а не стационарный привод или флэш-накопитель. Раньше у меня была эта проблема. Вы должны сохранить где-нибудь и копию с помощью проводника.

+0

Это позор - Не знает ли delphi о устройствах с возможностью «горячей» замены? – KevinDTimm

+0

>> Разве delphi не знает о подключаемых устройствах? Ну, ясно * некоторые * компоненты, используемые в Delphi, могут видеть устройства с возможностью горячей замены, поскольку TOpenDialog видит камеру. – RobertFrank

Смежные вопросы