Конференция "WinAPI" » Файловая система фотоаппарата [D7, WinXP]
 
  • angel095 (04.05.08 11:11) [0]
    Доброго времени суток!

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

    Твайн не подошел :( а путь найти не смог, помогите пожалуйста!!!
  • @!!ex © (04.05.08 11:19) [1]
    там FAT обычный, насколько я помню.
  • angel095 (04.05.08 11:22) [2]

    > там FAT обычный, насколько я помню.


    Я вот подключаю сво Canon IXUS 850 IS он в моем компьютере отображается как Canon IXUS 850 IS соответственно... если проводником на него входить то все Ок, но как это сделать программно?
  • МистерТ (04.05.08 14:13) [3]
    FindFirstFile/FindNextFile/FindClose
  • angel095 (04.05.08 16:40) [4]

    > FindFirstFile/FindNextFile/FindClose


    А где искать то? ведь папки как таковой нету... проблемма именно достучаться до папки на камере
  • palva © (04.05.08 17:29) [5]
    А физические диски посмотреть? Тип диска - съемный.
  • APhoto (04.05.08 17:34) [6]
    А один раз запомнить имя папки видимое из проводника очень сложно?
  • han_malign © (04.05.08 17:36) [7]
    Боюсь, что никакой файловой системы нет, а есть OLE-InProc сервер с реализацией IShellView который и отвечает за навигацию/просмотр по структуре данных в Windows Explorer.
    В лучшем случае поддерживается IShellFolder и тогда есть шанс достучаться до структуры и конкретных данных найдя отвечающий за это модуль и выковырнув конкретную реализацию интерфейса(возможно импортирование ActiveX прокатит).

    З.Ы. Давно это было - так что конкретики от меня не ждите - сами ковыряйтесь...
  • mahab © (04.05.08 17:37) [8]
    В инете есть исходники для отлова WM_DEVICECHANGE такие как DBT.pas со всеми остальными прибомбасами так вот оттуда можно получить имя присоединенного диска и далше делай что хочешь
  • angel095 (04.05.08 22:39) [9]
    APhoto
    palva


    Госпада :) Вы меня за юзера держите чтоли? :)
    если бы был адрес папки (каковой просто нет) неужели я бы не сообразил использовать именно это имя?! Еще раз? фотоаппараты разные, есть которые монтируются как диски, а есть очень вероятно, как сказал уважаемый han_malign IShellView.
  • mahab © (05.05.08 08:15) [10]

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

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

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

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

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

    просьба пояснить для начинающих.
  • Жуков Олег (05.05.08 17:21) [13]

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


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

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

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

    А оно Кенону нужно?
  • МистерТ (06.05.08 13:36) [16]
    > angel095   (06.05.08 12:31) [14]
    К примеру у меня старый Siemens M55 то же через эксплорер можно было просмотреть, для этого устанавливался специальный драйвер и надстройка. Сейчас такая же веСЧ с синезубом.
    А некоторые mp3-плееры поступают еще интересней, то, что закачено через эксплорер не проигрывает и часто вообще не видит, а то, что закачано через спец.прожку - видит и играет, и даже в эксплорере видит и позволяет удалить.
    Вопросы, как говорится, к производителю.
  • angel095 (06.05.08 18:26) [17]
    а можно как-нибудь через wia?
    может подскажет кто, где почитать про нее (только не msdn) :)
    правда мне кажется очень коряво выйдет и медленно...
  • Поп Гапон (06.05.08 18:43) [18]

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


    Можно, если открывать файлы не по имени, а по PIDL
    http://www.delphimaster.ru/articles/shell.html
  • angel095 (06.05.08 20:44) [19]

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


    а можно подробнее по сабжу, статью прочитал, но не очень понял :(
  • Жуков Олег (06.05.08 22:08) [20]
    Еще у Canon есть  SDK, которым они охотно делятся, можно в этом направлении покопать.
  • Поп Гапон (07.05.08 00:37) [21]

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


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

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

    Так что CoInitializeEx( nil, COINIT_MULTITHREADED ); заменить на CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
  • angel095 (07.05.08 17:56) [22]

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


    папку то отловить получилось, но как быть с файлами? что-то никак :(
 
Конференция "WinAPI" » Файловая система фотоаппарата [D7, WinXP]
Есть новые Нет новых   [134433   +21][b:0][p:0.001]