Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.48.212] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Добрый день, утро, вечер, ночь.
Не один день искал решение проблемы в инете, но так и не нашел ((( Имеется написанная на delphi6 программа, которая определяет подключение цифрового фотика и далее сортирует и копирует файлы на комп. пришло время заменить фотик, и тут возникла проблема. Ранее фотики никон подключались в компу как диск, а теперь как устройство, и программно копировать файлы с устройства как ранее не получается. Кто нить может чего подсказать ???? |
Сообщ.
#2
,
|
|
|
1. Что именно не получается? Нет драйвера, или же у фотоаппарата теперь свой софт для загрузки/закачки мультимедиа?
2. Распознаётся ли это устройство Explorer-ом виндовса? Если да, что мешает проследовать по этому пути? |
Сообщ.
#3
,
|
|
|
ранее для переноса файлов с фотика использовал функцию DoSHFileOp, сейчас не работает.
повторяю фотик подключается не как диск а как мультимедиа устройство, путь в проводнике ничего не дает |
Сообщ.
#4
,
|
|
|
Цитата vovan123 @ ранее для переноса файлов с фотика использовал функцию DoSHFileOp Цитата vovan123 @ повторяю фотик подключается не как диск Ну, если раньше Explorer успешно копировал, а сейчас нет, может и принцип чтения/записи изменился? Вы так и не объяснили, каким образом копирует файлы Explorer и копирует ли он их теперь вообще? Додумать что то за Вас здесь не смогут. Постарайтесь подробнее раскрыть тему. |
Сообщ.
#5
,
|
|
|
Цитата VisualProg @ Цитата vovan123 @ ранее для переноса файлов с фотика использовал функцию DoSHFileOp Цитата vovan123 @ повторяю фотик подключается не как диск Ну, если раньше Explorer успешно копировал, а сейчас нет, может и принцип чтения/записи изменился? Вы так и не объяснили, каким образом копирует файлы Explorer и копирует ли он их теперь вообще? Додумать что то за Вас здесь не смогут. Постарайтесь подробнее раскрыть тему. я не знаю как Explorer копирует файлы, это нужно у била гейца спросить. Я копирую с помощью функции DoSHFileOp. Поменялся фотоаппарат, если ранее он подключался как диск и проблем не было, то теперь подключается как мультимедиа устройство. При подключении фотика автоматом запускается прога получения данных со сканера или цифрового фотика. Теоретически предполагаю что копать нужно в сторону TWAIN, просто кто сталкивался с данной проблемой сможет помочь ??? |
Сообщ.
#6
,
|
|
|
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 закончить /////////--------------закончили удаление-------------------//////////// |
Сообщ.
#7
,
|
|
|
vovan123
Тебя конкретно спрашивают, Explorer файлы копирует или нет? какой нах гейтс ... . |
Сообщ.
#8
,
|
|
|
Цитата Jiro @ vovan123 Тебя конкретно спрашивают, Explorer файлы копирует или нет? какой нах гейтс ... . конкретно спрашивали (Вы так и не объяснили, каким образом копирует файлы Explorer) да Explorer естественно копирует файлы, что это дает???? Explorer обращается к файлам не просто а посредством TWAIN или MTP, в этом и состоит вопрос как это в дельфи реализовать. MTP менее желательно так как прога стоит на XP а там изначально нет библиотеки PortableDeviceApi.dll |
Сообщ.
#9
,
|
|
|
Цитата vovan123 @ да Explorer естественно копирует файлы, что это дает???? Это говорит о том, что Shell имеет представление как именно производить копирование. Так же, это говорит о том, что любые функции explorer-а, выполнить которые у вас получается в проводнике - должны работать в ShellAPI этого проводника. Поэтому и не понятно, какое исключение вываливает DoSHFileOp? Цитата vovan123 @ У нового фотика пути к диску нет Но, это не значит что нет протокола по которому можно получить доступ к файлам. Успешное копирование через Explorer именно это и говорит. Цитата Теоретически предполагаю что копать нужно в сторону TWAIN Скажу проще, если проводник знает как делать то что вам нужно - не надо писать костыли и велосипедить то же что уже реализованно в проводнике. У него есть вполне исчерпывающее API. И пожалуйста, форматируйте код в соответствии с правилами, в таком виде его тяжело читать |
Сообщ.
#10
,
|
|
|
Цитата VisualProg @ Это говорит о том, что Shell имеет представление как именно производить копирование. Так же, это говорит о том, что любые функции explorer-а, выполнить которые у вас получается в проводнике - должны работать в ShellAPI этого проводника. Поэтому и не понятно, какое исключение вываливает DoSHFileOp? Но, это не значит что нет протокола по которому можно получить доступ к файлам. Успешное копирование через Explorer именно это и говорит. Скажу проще, если проводник знает как делать то что вам нужно - не надо писать костыли и велосипедить то же что уже реализованно в проводнике. У него есть вполне исчерпывающее API. И пожайлуста, форматируйте код в соответствии с правилами, в таком виде его тяжело читать думаю вы неправы, не все так просто и однозначно предполагаю проводник получает доступ к устройству через какую то библиотеку, протокол. Он преобразует файлы с устройства в свой под ShellAPI вид. То есть я из своей программы, не могу использовать ShellAPI, функции не работают. Что бы вы поняли о чем я, грубо есть некий условно архив, что бы работать с файлами его нужно разжать, проводник в автомате разжимает архив и вы манипулируете файлами. В программе вы не можете так как проводник манипулировать файлами, потому что они за архивированы, изначально нуна разжать их.(может по аналогии поймете, что не все так просто и однозначно) лучше бы конечно что я ошибался, тогда подскажите как сделать |
Сообщ.
#11
,
|
|
|
vovan123
Может это уже испытывалось но всё же скажу, что быть может нужны права админа софтине для копирования. А так повторю что было сказано выше, нужно узнать код отказа при выполнении копирования. |
Сообщ.
#12
,
|
|
|
Цитата Jiro @ vovan123 Может это уже испытывалось но всё же скажу, что быть может нужны права админа софтине для копирования. А так повторю что было сказано выше, нужно узнать код отказа при выполнении копирования. Какие права админа ))) на что. Повторю свой первый пост, имеем компьютер, WinXP, софтина, потключаю по USB старый фотик, копирует с него фотки на комп, подключаю новый фотик не копирует. И какие права админа на фотик нужно, ибо меняется только фотик ))) ПРО код отказа копирую функцией DoSHFileOp , на старом фотике путь выгладит как путь к диску конкретно E:\DCIM\100NIKON\, также функцией FindFirst('E:\DCIM\100NIKON\*.*',faAnyFile,SR) ищу названия файлов так же по конкретному пути диска. Новый фотик подключается не как диск а как устройство, скажите какой путь писать, и я вам скажу какая ошибка будет.... |
Сообщ.
#13
,
|
|
|
vovan123
В первом посте ни слова про XP, так что это новая информация. права админа это конечно уже из серии win7+ А другие файловые мэнэджеры пробовались ? Есть мысля хотя наврятли, но всё же а вдруг что если задать путь так: '\\.\PHYSICALDRIVE#' где # - порядковый номер диска. Или так '\\.\E:' |
Сообщ.
#14
,
|
|
|
Jiro
MTP (Media Transfer Protocol) — это аппаратно независимый протокол, разработанный компанией Microsoft для подключения цифровых плееров к компьютеру. В операционной системе Windows MTP не является файловой системой, а поддерживается на уровне прикладного ПО, поэтому воспользоваться «любимым файловым менеджером» не получится, файлы можно записывать только через Проводник и Windows Media Player. Это не самый лучший протокол обмена данными между компьютером и смартфоном, но, к сожалению, приходится им пользоваться на устройствах где не реализован режим USB накопителя Mass Storage. ключевое слово из всего написанного, не является файловой системой. PS Jiro, нету диска подключается в проводнике как устройство а не диск |
Сообщ.
#15
,
|
|
|
vovan123
понятно, тогда Google>Delphi MTP ... Вроде то что нужно см. аттач Прикреплённый файлmtp10.zip (28,67 Кбайт, скачиваний: 145) |