На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> получение файлов с фотоаппарата по USB , получение файлов с фотоаппарата по USB
    Добрый день, утро, вечер, ночь.
    Не один день искал решение проблемы в инете, но так и не нашел (((
    Имеется написанная на delphi6 программа, которая определяет подключение цифрового фотика и далее сортирует и копирует файлы на комп. пришло время заменить фотик, и тут возникла проблема. Ранее фотики никон подключались в компу как диск, а теперь как устройство, и программно копировать файлы с устройства как ранее не получается.
    Кто нить может чего подсказать ????
      1. Что именно не получается? Нет драйвера, или же у фотоаппарата теперь свой софт для загрузки/закачки мультимедиа?
      2. Распознаётся ли это устройство Explorer-ом виндовса? Если да, что мешает проследовать по этому пути?
        ранее для переноса файлов с фотика использовал функцию DoSHFileOp, сейчас не работает.

        повторяю фотик подключается не как диск а как мультимедиа устройство, путь в проводнике ничего не дает
          Цитата vovan123 @
          ранее для переноса файлов с фотика использовал функцию DoSHFileOp

          Цитата vovan123 @
          повторяю фотик подключается не как диск

          Ну, если раньше Explorer успешно копировал, а сейчас нет, может и принцип чтения/записи изменился? Вы так и не объяснили, каким образом копирует файлы Explorer и копирует ли он их теперь вообще?

          Додумать что то за Вас здесь не смогут. Постарайтесь подробнее раскрыть тему.
            Цитата VisualProg @
            Цитата vovan123 @
            ранее для переноса файлов с фотика использовал функцию DoSHFileOp

            Цитата vovan123 @
            повторяю фотик подключается не как диск

            Ну, если раньше Explorer успешно копировал, а сейчас нет, может и принцип чтения/записи изменился? Вы так и не объяснили, каким образом копирует файлы Explorer и копирует ли он их теперь вообще?

            Додумать что то за Вас здесь не смогут. Постарайтесь подробнее раскрыть тему.

            я не знаю как Explorer копирует файлы, это нужно у била гейца спросить. Я копирую с помощью функции DoSHFileOp. Поменялся фотоаппарат, если ранее он подключался как диск и проблем не было, то теперь подключается как мультимедиа устройство. При подключении фотика автоматом запускается прога получения данных со сканера или цифрового фотика. Теоретически предполагаю что копать нужно в сторону TWAIN, просто кто сталкивался с данной проблемой сможет помочь ???
              VisualProg

              что бы было понятно вот кусок кода (E:\DCIM\100NIKON\) - это путь к старому фотику. У нового фотика пути к диску нет, потому что нет диска, а есть устройство, путь до устройства не подходит

              // begin //******************** удаление файлов и папок
              FDes :='D:\0_KO_GRAF\'+IntToStr(CustomerData.IBTable2.Fields[0].AsInteger)+'\'
              +CustomerData.IBTable2.Fields[2].AsString+'\'; // указали новый путь
              FSrc:='';
              if FindFirst('E:\DCIM\100NIKON\*.*',faAnyFile,SR)=0 then //ищем все файлы
              repeat
              if ExtractFileExt(SR.Name)='.JPG' then //проверка есть ли файл
              begin //// копируем если есть
              FSrc:=FSrc+'E:\DCIM\100NIKON\'+SR.Name+#0; //пишем путь
              begin //если не нашли добавить

              CustomerData.IBTable3.Insert;
              CustomerData.IBTable3.Fields[0].AsInteger:=CustomerData.IBTable1.Fields[0].AsInteger;
              CustomerData.IBTable3.Fields[1].AsDateTime:=CustomerData.IBTable2.Fields[2].AsDateTime;
              CustomerData.IBTable3.Fields[3].AsString:=SR.Name;
              CustomerData.IBTable3.Post; //запись в таблицу
              end;
              end; /// закончили копирование
              until FindNext(SR)<>0;
              FSrc:=FSrc+#0;
              FindClose(SR); //очистка памяти
              DoSHFileOp(Handle, FileOpMode[2], FSrc, FDes, false); //2-перенос 0-без удаления
              //*********** Копирование файлов и вставка строк в Таб3 закончить
              /////////--------------закончили удаление-------------------////////////
                vovan123
                Тебя конкретно спрашивают, Explorer файлы копирует или нет? какой нах гейтс ... :lol: .
                  Цитата Jiro @
                  vovan123
                  Тебя конкретно спрашивают, Explorer файлы копирует или нет? какой нах гейтс ... :lol: .

                  конкретно спрашивали (Вы так и не объяснили, каким образом копирует файлы Explorer)
                  да Explorer естественно копирует файлы, что это дает???? Explorer обращается к файлам не просто а посредством TWAIN или MTP, в этом и состоит вопрос как это в дельфи реализовать. MTP менее желательно так как прога стоит на XP а там изначально нет библиотеки PortableDeviceApi.dll
                  Сообщение отредактировано: vovan123 -
                    Цитата vovan123 @
                    да Explorer естественно копирует файлы, что это дает????

                    Это говорит о том, что Shell имеет представление как именно производить копирование. Так же, это говорит о том, что любые функции explorer-а, выполнить которые у вас получается в проводнике - должны работать в ShellAPI этого проводника.

                    Поэтому и не понятно, какое исключение вываливает DoSHFileOp?

                    Цитата vovan123 @
                    У нового фотика пути к диску нет

                    Но, это не значит что нет протокола по которому можно получить доступ к файлам. Успешное копирование через Explorer именно это и говорит.

                    Цитата
                    Теоретически предполагаю что копать нужно в сторону TWAIN

                    Скажу проще, если проводник знает как делать то что вам нужно - не надо писать костыли и велосипедить то же что уже реализованно в проводнике. У него есть вполне исчерпывающее API.

                    И пожалуйста, форматируйте код в соответствии с правилами, в таком виде его тяжело читать
                    Сообщение отредактировано: VisualProg -
                      Цитата VisualProg @

                      Это говорит о том, что Shell имеет представление как именно производить копирование. Так же, это говорит о том, что любые функции explorer-а, выполнить которые у вас получается в проводнике - должны работать в ShellAPI этого проводника.
                      Поэтому и не понятно, какое исключение вываливает DoSHFileOp?
                      Но, это не значит что нет протокола по которому можно получить доступ к файлам. Успешное копирование через Explorer именно это и говорит.
                      Скажу проще, если проводник знает как делать то что вам нужно - не надо писать костыли и велосипедить то же что уже реализованно в проводнике. У него есть вполне исчерпывающее API.

                      И пожайлуста, форматируйте код в соответствии с правилами, в таком виде его тяжело читать

                      думаю вы неправы, не все так просто и однозначно
                      предполагаю проводник получает доступ к устройству через какую то библиотеку, протокол. Он преобразует файлы с устройства в свой под ShellAPI вид.
                      То есть я из своей программы, не могу использовать ShellAPI, функции не работают.
                      Что бы вы поняли о чем я, грубо есть некий условно архив, что бы работать с файлами его нужно разжать, проводник в автомате разжимает архив и вы манипулируете файлами. В программе вы не можете так как проводник манипулировать файлами, потому что они за архивированы, изначально нуна разжать их.(может по аналогии поймете, что не все так просто и однозначно)
                      лучше бы конечно что я ошибался, тогда подскажите как сделать
                        vovan123
                        Может это уже испытывалось но всё же скажу, что быть может нужны права админа софтине для копирования.
                        А так повторю что было сказано выше, нужно узнать код отказа при выполнении копирования.
                          Цитата Jiro @
                          vovan123
                          Может это уже испытывалось но всё же скажу, что быть может нужны права админа софтине для копирования.
                          А так повторю что было сказано выше, нужно узнать код отказа при выполнении копирования.

                          Какие права админа ))) на что. Повторю свой первый пост, имеем компьютер, WinXP, софтина, потключаю по USB старый фотик, копирует с него фотки на комп, подключаю новый фотик не копирует. И какие права админа на фотик нужно, ибо меняется только фотик )))
                          ПРО код отказа
                          копирую функцией DoSHFileOp , на старом фотике путь выгладит как путь к диску конкретно E:\DCIM\100NIKON\, также функцией FindFirst('E:\DCIM\100NIKON\*.*',faAnyFile,SR) ищу названия файлов так же по конкретному пути диска.
                          Новый фотик подключается не как диск а как устройство, скажите какой путь писать, и я вам скажу какая ошибка будет....
                            vovan123
                            В первом посте ни слова про XP, так что это новая информация. права админа это конечно уже из серии win7+

                            А другие файловые мэнэджеры пробовались ?

                            Есть мысля хотя наврятли, но всё же а вдруг
                            что если задать путь так: '\\.\PHYSICALDRIVE#' где # - порядковый номер диска. Или так '\\.\E:'
                              Jiro
                              MTP (Media Transfer Protocol) — это аппаратно независимый протокол, разработанный компанией Microsoft для подключения цифровых плееров к компьютеру.
                              В операционной системе Windows MTP не является файловой системой, а поддерживается на уровне прикладного ПО, поэтому воспользоваться «любимым файловым менеджером» не получится, файлы можно записывать только через Проводник и Windows Media Player.
                              Это не самый лучший протокол обмена данными между компьютером и смартфоном, но, к сожалению, приходится им пользоваться на устройствах где не реализован режим USB накопителя Mass Storage.

                              ключевое слово из всего написанного, не является файловой системой.

                              PS Jiro, нету диска подключается в проводнике как устройство а не диск
                              Сообщение отредактировано: vovan123 -
                                vovan123
                                понятно, тогда Google>Delphi MTP ...
                                Вроде то что нужно см. аттач Прикреплённый файлПрикреплённый файлmtp10.zip (28,67 Кбайт, скачиваний: 141)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0393 ]   [ 19 queries used ]   [ Generated: 28.03.24, 21:33 GMT ]