Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Файловая система фотоаппарата [D7, WinXP]


Страницы:   1 2

angel095 ©   (2008-05-04 11:11:00) 

Доброго времени суток!

Товарищи мастера, подскажите пожалуйста, как можно получить список файлов (с путями) на подключенном по USB фотоаппарате, для дальнейшего копирования этих фалов?

Твайн не подошел :( а путь найти не смог, помогите пожалуйста!!!


angel095   (2008-05-07 17:56:00) [1]


> запусти програмку ShellA и все увидишь


папку то отловить получилось, но как быть с файлами? что-то никак :(


Поп Гапон   (2008-05-07 00:37:00) [2]


> angel095   (06.05.08 20:44) [19]
>
>
> > Можно, если открывать файлы не по имени, а по PIDL
>
>
> а можно подробнее по сабжу, статью прочитал, но не очень
> понял :(


Да куда уж подробнее. запусти програмку ShellA и все увидишь.

Кстати, там ошибка. Расширения эксплорера поддерживают только apartmentthread модель.

Так что CoInitializeEx( nil, COINIT_MULTITHREADED); заменить на CoInitializeEx(nil, COINIT_APARTMENTTHREADED);


Жуков Олег   (2008-05-06 22:08:00) [3]

Еще у Canon есть  SDK, которым они охотно делятся, можно в этом направлении покопать.


angel095   (2008-05-06 20:44:00) [4]


> Можно, если открывать файлы не по имени, а по PIDL


а можно подробнее по сабжу, статью прочитал, но не очень понял :(


Поп Гапон   (2008-05-06 18:43:00) [5]


> angel095   (06.05.08 12:31) [14]
>
> а почему windows explorer видит файлы на кеноне? неужели
> никак нельзя (попроще) получить пути к этим файлам? :(


Можно, если открывать файлы не по имени, а по PIDL
http://www.delphimaster.ru/articles/shell.html


angel095   (2008-05-06 18:26:00) [6]

а можно как-нибудь через wia?
может подскажет кто, где почитать про нее (только не msdn) :)
правда мне кажется очень коряво выйдет и медленно...


МистерТ   (2008-05-06 13:36:00) [7]

> angel095   (06.05.08 12:31) [14]
К примеру у меня старый Siemens M55 то же через эксплорер можно было просмотреть, для этого устанавливался специальный драйвер и надстройка. Сейчас такая же веСЧ с синезубом.
А некоторые mp3-плееры поступают еще интересней, то, что закачено через эксплорер не проигрывает и часто вообще не видит, а то, что закачано через спец.прожку - видит и играет, и даже в эксплорере видит и позволяет удалить.
Вопросы, как говорится, к производителю.


Anatoly Podgoretsky   (2008-05-06 13:12:00) [8]

> angel095  (06.05.2008 12:31:14)  [14]

А оно Кенону нужно?


angel095   (2008-05-06 12:31:00) [9]

а почему windows explorer видит файлы на кеноне? неужели никак нельзя (попроще) получить пути к этим файлам? :(


Жуков Олег   (2008-05-05 17:21:00) [10]


> angel095   (04.05.08 11:22) [2]
>
>


Кеноны не подключаются как съемный диск, в отличие от большинства других фотоаппаратов, и путей для стандартных функций копирования значит нет. Чтобы закачать изображения, нужно использовать интерфейс для работы с цифровой камерой.

http://msdn.microsoft.com/en-us/library/ms630368(VS.85).aspx

Но проще купить кардридер.


mahab   (2008-05-05 11:40:00) [11]


>  с проприетарным интерфейсом

просьба пояснить для начинающих.


han_malign   (2008-05-05 11:10:00) [12]


> Если устройство определяется в системе как флеш носитель то оно получает арес

- ключевое слово здесь если... Так вот, " еслиустройство определяется в системе как флеш носитель", то оно смонтируется как диск и и только тогда сообщение DBT_DEVICEARRIVAL нам чем то поможет... А при подключении USB устройства с проприетарным интерфейсом - DBT_DEVNODES_CHANGED, в которм кстати никакого "адреса устройства" не передается, уже ничем не поможет...(конечно, зная VID&PID устройства можно посредством SetupAPI пробежаться по новым устройствам, поднять interrupt/command/bulk-трубы, открыть DeviceIOControl - но нужно знать, что туда передавать и что оттуда получать)


mahab   (2008-05-05 08:15:00) [13]


> angel095
> если бы был адрес папки (каковой просто нет)

Естественно нет. Если устройство определяется в системе как флеш носитель то оно получает арес и система отправляет всем пользовательским (а может и не только ) процессам сообщение WM_DEVICECHANGE которое имеет параметры из которых можно получить адрес устройства. Так вот все эти параметры описаны в DBT.pas !!!


angel095   (2008-05-04 22:39:00) [14]

APhoto
palva


Госпада :) Вы меня за юзера держите чтоли? :)
если бы был адрес папки (каковой просто нет) неужели я бы не сообразил использовать именно это имя?! Еще раз? фотоаппараты разные, есть которые монтируются как диски, а есть очень вероятно, как сказал уважаемый han_malignIShellView.


mahab   (2008-05-04 17:37:00) [15]

В инете есть исходники для отлова WM_DEVICECHANGE такие как DBT.pas со всеми остальными прибомбасами так вот оттуда можно получить имя присоединенного диска и далше делай что хочешь


han_malign   (2008-05-04 17:36:00) [16]

Боюсь, что никакой файловой системы нет, а есть OLE-InProc сервер с реализацией IShellView который и отвечает за навигацию/просмотр по структуре данных в Windows Explorer.
В лучшем случае поддерживается IShellFolder и тогда есть шанс достучаться до структуры и конкретных данных найдя отвечающий за это модуль и выковырнув конкретную реализацию интерфейса(возможно импортирование ActiveX прокатит).

З.Ы. Давно это было - так что конкретики от меня не ждите - сами ковыряйтесь...


APhoto   (2008-05-04 17:34:00) [17]

А один раз запомнить имя папки видимое из проводника очень сложно?


palva   (2008-05-04 17:29:00) [18]

А физические диски посмотреть? Тип диска - съемный.


angel095   (2008-05-04 16:40:00) [19]


> FindFirstFile/FindNextFile/FindClose


А где искать то? ведь папки как таковой нету... проблемма именно достучаться до папки на камере


МистерТ   (2008-05-04 14:13:00) [20]

FindFirstFile/FindNextFile/FindClose


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо