-
Доброго времени суток!
Товарищи мастера, подскажите пожалуйста, как можно получить список файлов (с путями) на подключенном по USB фотоаппарате, для дальнейшего копирования этих фалов?
Твайн не подошел :( а путь найти не смог, помогите пожалуйста!!!
-
там FAT обычный, насколько я помню.
-
> там FAT обычный, насколько я помню.
Я вот подключаю сво Canon IXUS 850 IS он в моем компьютере отображается как Canon IXUS 850 IS соответственно... если проводником на него входить то все Ок, но как это сделать программно?
-
FindFirstFile/FindNextFile/FindClose
-
> FindFirstFile/FindNextFile/FindClose
А где искать то? ведь папки как таковой нету... проблемма именно достучаться до папки на камере
-
А физические диски посмотреть? Тип диска - съемный.
-
А один раз запомнить имя папки видимое из проводника очень сложно?
-
Боюсь, что никакой файловой системы нет, а есть OLE-InProc сервер с реализацией IShellView который и отвечает за навигацию/просмотр по структуре данных в Windows Explorer.
В лучшем случае поддерживается IShellFolder и тогда есть шанс достучаться до структуры и конкретных данных найдя отвечающий за это модуль и выковырнув конкретную реализацию интерфейса(возможно импортирование ActiveX прокатит).
З.Ы. Давно это было - так что конкретики от меня не ждите - сами ковыряйтесь...
-
В инете есть исходники для отлова WM_DEVICECHANGE такие как DBT.pas со всеми остальными прибомбасами так вот оттуда можно получить имя присоединенного диска и далше делай что хочешь
-
APhoto
palva
Госпада :) Вы меня за юзера держите чтоли? :)
если бы был адрес папки (каковой просто нет) неужели я бы не сообразил использовать именно это имя?! Еще раз? фотоаппараты разные, есть которые монтируются как диски, а есть очень вероятно, как сказал уважаемый han_malign IShellView.
-
> angel095
> если бы был адрес папки (каковой просто нет)
Естественно нет. Если устройство определяется в системе как флеш носитель то оно получает арес и система отправляет всем пользовательским (а может и не только ) процессам сообщение WM_DEVICECHANGE которое имеет параметры из которых можно получить адрес устройства. Так вот все эти параметры описаны в DBT.pas !!!
-
> Если устройство определяется в системе как флеш носитель то оно получает арес
- ключевое слово здесь если... Так вот, "если устройство определяется в системе как флеш носитель", то оно смонтируется как диск и и только тогда сообщение DBT_DEVICEARRIVAL нам чем то поможет... А при подключении USB устройства с проприетарным интерфейсом - DBT_DEVNODES_CHANGED, в которм кстати никакого "адреса устройства" не передается, уже ничем не поможет...(конечно, зная VID&PID устройства можно посредством SetupAPI пробежаться по новым устройствам, поднять interrupt/command/bulk-трубы, открыть DeviceIOControl - но нужно знать, что туда передавать и что оттуда получать)
-
> с проприетарным интерфейсом
просьба пояснить для начинающих.
-
> angel095 (04.05.08 11:22) [2]
>
>
Кеноны не подключаются как съемный диск, в отличие от большинства других фотоаппаратов, и путей для стандартных функций копирования значит нет. Чтобы закачать изображения, нужно использовать интерфейс для работы с цифровой камерой.
http://msdn.microsoft.com/en-us/library/ms630368(VS.85).aspx
Но проще купить кардридер.
-
а почему windows explorer видит файлы на кеноне? неужели никак нельзя (попроще) получить пути к этим файлам? :(
-
> angel095 (06.05.2008 12:31:14) [14]
А оно Кенону нужно?
-
> angel095 (06.05.08 12:31) [14]
К примеру у меня старый Siemens M55 то же через эксплорер можно было просмотреть, для этого устанавливался специальный драйвер и надстройка. Сейчас такая же веСЧ с синезубом.
А некоторые mp3-плееры поступают еще интересней, то, что закачено через эксплорер не проигрывает и часто вообще не видит, а то, что закачано через спец.прожку - видит и играет, и даже в эксплорере видит и позволяет удалить.
Вопросы, как говорится, к производителю.
-
а можно как-нибудь через wia?
может подскажет кто, где почитать про нее (только не msdn) :)
правда мне кажется очень коряво выйдет и медленно...
-
> angel095 (06.05.08 12:31) [14]
>
> а почему windows explorer видит файлы на кеноне? неужели
> никак нельзя (попроще) получить пути к этим файлам? :(
Можно, если открывать файлы не по имени, а по PIDL
http://www.delphimaster.ru/articles/shell.html
-
> Можно, если открывать файлы не по имени, а по PIDL
а можно подробнее по сабжу, статью прочитал, но не очень понял :(
-
Еще у Canon есть SDK, которым они охотно делятся, можно в этом направлении покопать.
-
> angel095 (06.05.08 20:44) [19]
>
>
> > Можно, если открывать файлы не по имени, а по PIDL
>
>
> а можно подробнее по сабжу, статью прочитал, но не очень
> понял :(
Да куда уж подробнее. запусти програмку ShellA и все увидишь.
Кстати, там ошибка. Расширения эксплорера поддерживают только apartmentthread модель.
Так что CoInitializeEx( nil, COINIT_MULTITHREADED ); заменить на CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
-
> запусти програмку ShellA и все увидишь
папку то отловить получилось, но как быть с файлами? что-то никак :(