Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Drag and Drop c Explorer 
:(
    Опции темы
Ak47black
  Дата 21.4.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Как переташить не из проводника, а в проводник.
Я имею ввиду только получение пути куда он был переташен, итем из TListView?

Это сообщение отредактировал(а) Ak47black - 21.4.2007, 16:53
PM MAIL   Вверх
Ak47black
Дата 21.4.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Хотя-бы как эти компоненты переделать что-бы добиться результата?

Это сообщение отредактировал(а) Ak47black - 21.4.2007, 17:38
PM MAIL   Вверх
Guedda
Дата 21.4.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А тебе необходимо копировать, или перемещать?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Ak47black
Дата 21.4.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Цитата

А тебе необходимо копировать, или перемещать?

Нет, только путь получить, оттуда куда кинул.  smile 

Это сообщение отредактировал(а) Ak47black - 21.4.2007, 17:59
PM MAIL   Вверх
Ak47black
Дата 22.4.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Неукого нету некаких идей чтоли?
PM MAIL   Вверх
Snowy
Дата 22.4.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



PM MAIL   Вверх
Ak47black
Дата 22.4.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Не опять нето, но близко.
Я уже перерыл весь интернет то точно  smile , такая несложная задача на первый взгляд, а ответа ну нигде нету.
Мне сами файлы не нужно копировать или перемешать, а только путь получить, 
Цитата

DropSource и IDataObject

только копируют и перешают как я вижу, можно-ли каким нибудь путем до них достучаться что-бы они путь выдали?

Это сообщение отредактировал(а) Ak47black - 22.4.2007, 17:04
PM MAIL   Вверх
Snowy
Дата 23.4.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Тут проблема.
Никто тебе путь не скажет.
Механизм просто отдаёт список приложению.
А копирует оно или что другое делает - это личное дело приложения, которому ты отдаёшь данные.
И уж темболее куда - это его личное дело.
PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Snowy, я конечно зашел в тупик  smile , но я вот только одного понять немогу,
допустим я взял какой-нибудь известый ftp клиент - например SmartFtp
, при помоши его можно зайти на какойнибудь удаленый сервер и оттуда удаленый файл перетянуть допустим на рабочий стол и файл начнеться скачиваться.
Тоесть как я понимаю приложению какимто образом доходит куда качать > smile 
PM MAIL   Вверх
Snowy
Дата 23.4.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Он тянет во временную папку, а потом уже отдаёт файл.
То есть делается драгндроп, в момент дропа, возникает колбэк.
В этом колбэке происходит скачивание в темп, с последующей отдачей этого темпа.
Вот уже временный файл потом копируется в заданное место.
В примерах к компоненту есть пример с распаковкой.
Там это всё расписано.
Разумеется вместо реальной распаковки, создаётся пустой файл, но механизм понятен.
Аналогично делается и скачивание и т.п. случаи, когда файл должен возникать в момент дропа.
PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



 smile 
Цитата

В примерах к компоненту есть пример с распаковкой.

Это где? (В каких примерах, где они)
Цитата

Вот уже временный файл потом копируется в заданное место.

Ну там же произходит наполнение файла по мере скачивания(тоесть куда кинул), тоесть без временного вроде.

Это сообщение отредактировал(а) Ak47black - 23.4.2007, 13:16
PM MAIL   Вверх
Snowy
Дата 23.4.2007, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



В архиве уже сушествуют файлы, а тут как получаеться что по мере скачивания он подтаскивает куски файла ?( както у меня в голове неукладываеться), чтото нетак.
Файл там (который был кинут) по мере скачивания заполняеться  smile 

Это сообщение отредактировал(а) Ak47black - 23.4.2007, 13:29
PM MAIL   Вверх
Snowy
Дата 23.4.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Смотри ExtractDemo.
Метод ExtractFile.
По сути всё готово - просто написать свою реализацию ExtractFile, ну или переименовать по-своему, например DownloadFile. Не важно...
Просто действия должны выполняться в OnDrop.

Добавлено через 2 минуты и 33 секунды
Цитата(Ak47black @  23.4.2007,  13:26 Найти цитируемый пост)
В архиве уже сушествуют файлы
Неееет. Существует архив.
А файлы нужно ещё распаковать.
То есть в примере перед тем, как файлы окончательно будут отданы, они должны быть созданы.
Аналогично и при скачивании.
Перед тем, как окончательно отдашь, нужно их создать, то бишь скачать и положить в темп.
PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Цитата

Перед тем, как окончательно отдашь, нужно их создать, то бишь скачать и положить в темп. 

А там при скачивании сразу в файл записываеться.
Тоесть там где файл дропнул там появняеться файл с размером 0 байт и начинает заполнять по мере скачивания, тоесть он не после скачивания перемешаеться.

Это сообщение отредактировал(а) Ak47black - 23.4.2007, 14:06
PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Если
поставить в настройках
user posted image
то если сделать дроп
то списке задач 'Transfer Queue', всё-таки у этого файла путь будет тотже куда его кинули.
Тоесть какимто образом тут это реализовано и путь как-то получаеться.

PM MAIL   Вверх
Snowy
Дата 23.4.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Ну, как извращенский вариант, можно так:
Скармливаем файл нулевого размера, ловим где в системе создался новый файл и дальше его подло юзаем.
PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



 smile Snowy, ну раз МелкийСофт непозаботился то мож и так , только как
Цитата

ловим где в системе создался новый файл

?

PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Может как-нибудь можно зная Handle проводника, узнать у него путь?
PM MAIL   Вверх
Ak47black
Дата 23.4.2007, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Мда Snowy, ты прав был, во что я нашол
Цитата

I'm the author of the Drag and Drop Component Suite.

I assume that you found the Extract demo on my home page - the one that uses the same technique as WinZip.

Unfortunately, as you correctly concluded, this alone can not solve your problem. To my knowledge (and I know a lot <g>), it is not possible for the drop source to get any information at all about the drop destination.

The only solution I can think of is to install a temporary copy hook handler which monitors the file you have created in the temp directory (using the WinZip technique). When the file is dropped and the explorer moves the files to its new destination (the folder where the user dropped it), you will receive notification of the new path.

To learn about copy hook handlers, check out Delphi's ShellExt demo application (delphi\demos\ActiveX\ShellExt) and specifically the ICopyHook interface.



Это сообщение отредактировал(а) Ak47black - 23.4.2007, 20:33
PM MAIL   Вверх
Snowy
Дата 24.4.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Ну про это я и говорю - отдаём нулевой файл и смотрим, куда он пошёл дальше.
Хук на explorer вполне подходит. Хотя не исключаю и других вариантов отслеживания.
Например по принципу FileMon.
PM MAIL   Вверх
Ak47black
Дата 24.4.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Snowy, а
Цитата

Например по принципу FileMon. 

Это как, может без Хук?, очень интересно узнать как тогда  smile  ?
PM MAIL   Вверх
Snowy
Дата 24.4.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Попробуй поиск по форуму  smile 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.