![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открыть несколько выбранных файлов
Efir © (2008-03-31 22:17:00)Файлы ассоциированы с приложением. Как открывать по одному - понятно, но вот как определить что пользователь выбрал несколько файлов.
Германн (2008-04-03 01:31:00) [1]Кстати. Только что попытался провести ещё один эксперимент с WinAmp'ом. Дык он вообще при выделении в проводнике 5 файлов mp3 открыл мне 5 окон с настройками DFX, 5 окон с предложением купить этот DFX и 5 окон собственно проигрывателя!И это несмотря на то, что опция "Allow multiple instances of Winamp to start" не выбрана.
P.S. Версия WinAmp'а конечно старая 3.0d. Но с 2002-го мало что изменилось.
Так что ещё раз подтверждаю мысль о том, "задача далеко нетривиальна".
Германн (2008-04-03 00:38:00) [2]
> Leonid Troyanovsky © (02.04.08 22:59) [23]
>
>
Значит Efir (02.04.08 00:19) [21] желает странного.
Leonid Troyanovsky (2008-04-02 22:59:00) [3]
> Германн © (02.04.08 00:54) [22]
> Тут эта. Возможно есть в проводнике способ узнать количество
> выделенных файлов, возможно нет такого способа я не знаю.
> По ссылке LVT ничего подобного не было?
Как узнать количество выделенных по той ссылке нет, хотя,
думаю, что найти оную информацию на просторах msdn можно.
Однако, среди выделенного могут быть как нецелевые файлы,
так и, скажем, ярлыки на нужные, что до их запуска установить
не просто, а уж средствами DDE - весьма сомнительно.
Да и проблема в том, что никакого "последнего" файла не
существует, бо после выделенного в одном экз. проводника
можно пустить из другого или из планировщика или и т.д.
Для самого общего случая, включая запуск из комстроки и
пакетных файлов, задача далеко нетривиальна и, понятно, что
DDE здесь не пригодится.
--
Regards, LVT.
Германн (2008-04-02 00:54:00) [4]
> Efir (02.04.08 00:19) [21]
>
>
> > Германн © (02.04.08 00:07) [20]
>
>
> Ладно, возможно, но нужно отловить момент загрузки последнего
> файла.
>
Тут эта. Возможно есть в проводнике способ узнать количество выделенных файлов, возможно нет такого способа я не знаю. По ссылке LVT ничего подобного не было?
Efir (2008-04-02 00:19:00) [5]
> Германн © (02.04.08 00:07) [20]
Ладно, возможно, но нужно отловить момент загрузки последнего файла.
Германн (2008-04-02 00:07:00) [6]
> Efir (01.04.08 22:11) [19]
>
> При взгляде на загрузку того же Winamp'a видно, что приложение
> загружает одну копию о добавляет все файлы сразу
Плохой взгляд. Я когда сам проверял, выделил несколько файлов и нажал в проводнике Энтер, увидел два окна с предложением обновить версию WinAmp'а. Что никак не согласуется с версией о только одной копии.
Efir (2008-04-01 22:11:00) [7]При взгляде на загрузку того же Winamp'a видно, что приложение загружает одну копию о добавляет все файлы сразу (при добавлении файлов курсор показывает загрузку только один раз - во время загрузки первой копии программы).
В приведённых примерах файлы добавляются по очереди (по одному), что затрудняет определиние последнего загруженного файла.
Leonid Troyanovsky (2008-04-01 22:00:00) [8]
> Efir (01.04.08 21:42) [17]
> Это уже интересней, но по результату работы не сильно отличается
Тебе шашечки или ехать?
Указанная ссылка объясняет, как открыть несколько выделенных
в проводнике файлов, ассоциированных с приложением.
Кста, приложение там запускается единожды, а все остальное -
за счет взаимодействия с проводником.
--
Regards, LVT.
Efir (2008-04-01 21:42:00) [9]
> Leonid Troyanovsky © (01.04.08 09:38) [16]
Это уже интересней, но по результату работы не сильно отличается от
при старте программы нужно проверить, нет ли уже работающего
экземпляра этой же программы и если есть, то передать тому
экземпляру имя файла находящееся в ParamStr(1) и закрыться.
Leonid Troyanovsky (2008-04-01 09:38:00) [10]
> Efir (31.03.08 22:17)
> Файлы ассоциированы с приложением. Как открывать по одному
> - понятно, но вот как определить что пользователь выбрал
> несколько файлов.
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/278f89887ab26b31
--
Regards, LVT.
Efir (2008-04-01 01:03:00) [11]
> Хм. Не твой ли был вопрос про "Открыть с помощью"?
Вроде не я.
Германн (2008-04-01 00:59:00) [12]
> Efir (01.04.08 00:49) [13]
>
> Здесь есть один нюанс, как узнать, что при загрузке следующего
> файла предыдущий тоже был загружен из выделенных файлов
> (т.е. определить, очищать плейлист или добавить). Я решил
> проблему засекая время с момента последней загрузки, и если
> прошло менее 100 мс, добавлял файл, иначе очищал плейлист.
> Но мне кажнтся это кривоватый способ.
> Вот и решил узнать есть ли более эффективый способ.
>
Хм. Не твой ли был вопрос про "Открыть с помощью"?
Если и есть более эффективный, то я его не знаю.
Efir (2008-04-01 00:49:00) [13]Здесь есть один нюанс, как узнать, что при загрузке следующего файла предыдущий тоже был загружен из выделенных файлов (т.е. определить, очищать плейлист или добавить). Я решил проблему засекая время с момента последней загрузки, и если прошло менее 100 мс, добавлял файл, иначе очищал плейлист. Но мне кажнтся это кривоватый способ.
Вот и решил узнать есть ли более эффективый способ.
Германн (2008-04-01 00:40:00) [14]
> Efir (01.04.08 00:38) [10]
>
>
> > Германн © (01.04.08 00:32) [8]
>
>
> Нет ли возможности призагрузке копии прогрыммы определить,
> что выделенно несколько файлов и сразу все загрузить. По-
> моему Winamp так и делает.
1. Нет.
2. Нет. см. Германн © (01.04.08 00:39) [11]
Германн (2008-04-01 00:39:00) [15]
> Efir (01.04.08 00:35) [9]
Во-первых ты не сказал как сделал. Во-вторых не ответил на мой второй вопрос. А WinAmp, имхо так и делает. Перед Германн © (01.04.08 00:32) [8] лично проверил.
Efir (2008-04-01 00:38:00) [16]
> Германн © (01.04.08 00:32) [8]
Нет ли возможности призагрузке копии прогрыммы определить, что выделенно несколько файлов и сразу все загрузить. По-моему Winamp так и делает.
Efir (2008-04-01 00:35:00) [17]
> Германн © (01.04.08 00:32) [8]
> Т.е. при старте программы нужно проверить, нет ли уже работающего
> экземпляра этой же программы и если есть, то передать тому
> экземпляру имя файла находящееся в ParamStr(1) и закрыться.
> ...
Германн (2008-04-01 00:32:00) [18]
> Efir (01.04.08 00:16) [7]
>
> Я это в общем и сделал, но т.к. программа - плеер, то хотелось
> узнать, можно ли сразу скопом загрузить все файлы, как например
> это делает Winamp.
>
Что ты именно "в общем и сделал"? И что означает "как это делает WinAmp"?
Efir (2008-04-01 00:16:00) [19]Я это в общем и сделал, но т.к. программа - плеер, то хотелось узнать, можно ли сразу скопом загрузить все файлы, как например это делает Winamp.
{RASkov} (2008-04-01 00:14:00) [20]Что-то как-то несуразный получился ответ :( ...но думаю понятно, что я имел в виду)
Т.е. при старте программы нужно проверить, нет ли уже работающего экземпляра этой же программы и если есть, то передать тому экземпляру имя файла находящееся в ParamStr(1) и закрыться....