Форум: "Media";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизЗагразка имён .mp3 файлов в ListBox моего проигрывателя Найти похожие ветки
← →
Тёма (2004-06-09 18:25) [0]Здравствуйте! Хочу спросить опытных программистов об одном вопросе, который мучает меня уже долгое время.
Я создаю мультимедиа проигрыватель (в общем уже почти создал). И вот появилась такая необходимость, чтобы при выделении, например, 20 файлов .mp3 и нажатии кнопки "Enter" запускался мой проигрыватель и в его список ListBox добавлялись имена 20-ти .mp3 файлов.
Формат .mp3 ассоциировал с моим проигрывателем. В проигрывателе обработал функцию ParamStr. Запретил запуск второй копии программы (если это не сделать, запускается 20 проигрывателей). Но в ListBox добавляется только имя последнего двадцатого файла. И к тому же появляется это надоедливое окно "Вы собираетесь открыть 20 файлов, это может занять длительный процесс...".
Вот у Windows Media Player и WinAmp (версия 2.8) все работает отлично - "никаких окон, никаких длительных процессов".
Пожалуйста, если кто-то знает, что делать в данной ситуации, помогите.
← →
Kto-to (2004-06-09 19:15) [1]Мне кажется, что ты пишешь так:
ListBox.Items.Add(ParamStr(ParamCount)); //я прав?
Попробуй так:
for i := 0 to ParamCout {-1?} do
ListBox.Items.Add(ParamStr(i)); //может быть получится
Хотя я не уверен...
← →
Тёма (2004-06-09 21:51) [2]Если бы было всё так просто! Конечно же я пишу "for i:=0 to...". Да только вот вся проблема в том, что Windows посылает имя каждого из 20-ти .mp3 файлов не в один проигрыватель (как надо), а в каждый проигрыватель по одному имени. Поэтому, мне кажется, что здесь, скорее всего, надо использователь не только ParamStr, а что-то ещё. Для WinApm, например, в реестре я нашёл, что он использует какую-то функцию DropTarget, а Windows Media Player вообще использует .dll библиотеку.
Уже несколько месяцев я в тупике, никто ничего вразумительного не может сказать. Help!
← →
Иван Ширко (2004-06-09 22:19) [3]Здесь можно использовать обмен сообщениями между версиями твоей проги (wm_copydata, например):
Запускается прога, если это её первый экземпляр, то работаем, иначе посылаем имя файла первому экземпляру и закрываемся. должно работать.
Удачи!
← →
Mim1 © (2004-06-10 03:27) [4]
> это надоедливое окно "Вы собираетесь открыть 20 файлов
Смотрите DropTarget, LocalServer32
http://www.google.com/search?q=%44%72%6F%70%54%61%72%67%65%74%20%4C%6F%63%61%6C%53%65%72%76%65%72%33%32
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/sh ell_basics_extending/fileassociations/fa_verbs.asp
← →
Тёма (2004-06-10 09:05) [5]Спасибо всем!
Сейчас начну разбираться с DropTarget. Но вот насчёт (Иван Ширко) обмена сообщениями не уверен. Ведь, кажется, с использованием DropTarget не будет запускаться вторая копия программы. Поэтому здесь надо будет подумать.
← →
Тёма (2004-06-10 11:56) [6]Всё-таки непростая вещь - этот DropTarget. Я уже до этого пробовал изменять в реестре ключи с "winamp.exe" на свой "player.exe". Проигрыватель запускается, но в ListBox довабляется "-Embedding" и папка, откуда я запускаю .mp3 файлы, зависает. Создавал свои ключи и записывал в них "winamp.exe", WinAmp запускается, в его список файлов ничего не добавляется, а папка опять зависает.
Выходит, что в моём плеере надо использовать какую-то функцию (в MSDN написано про какую-то WM_DDE_EXECUTE), но я про неё ничего не знаю. Может кто-то подкинет мне умную мысль.
← →
Тёма (2004-06-11 09:00) [7]И ещё один вопрос - последний.
Вот если я, например, с помощью реестра ассоциировал с форматом .mp3 свои иконки, то как сделать так, чтобы .mp3-шки приняли мои иконки без перезагрузки компьютера. Опять, наверное, какую-то функцию обновления надо использовать.
Заранее благодарен!
← →
G_U_N (2004-06-13 21:00) [8]Удалено модератором
Примечание: Зажай вопрос в своей ветке
← →
GuAV © (2004-06-14 00:45) [9]Поделюсь своим наблюдением:
Винамп ищет себя при запуске и если разница между временем запуска копии меньше <константы не знаю, где-то 0.5 сек>, то он передаёт сообщение (или не сообщение?) старой копии. Вот так тупо.
← →
MUHAMOR (2004-06-14 10:19) [10]Вот глянь что у меня получилось.
http://muhamorchik.narod.ru/distrib/RunAll.zip
Кустарно конечно, но иногда срабатывает. Идея вроде ничего но надо еще поработать. Такчто я и тебе оставил поработать немного, а то совсем неинтересно получится...
← →
MUHAMOR (2004-06-14 18:19) [11]Кстати тут пришло еще одно решение.........
Результат будут позже...
← →
MUHAMOR (2004-06-16 22:04) [12]А вот и результат, будут вопросы пиши на мыло...
http://muhamorchik.narod.ru/distrib/RunAll.zip
← →
Mim1 © (2004-06-17 17:57) [13]
> [12] MUHAMOR (16.06.04 22:04)
> А вот и результат, будут вопросы пиши на мыло...
Гениально!
Более достойный результат сожно скачать с зарекомендовавшего себя сайта
http://www.winamp.com :)
А при взягляде на ваше exe есть нехорошие подозрение. Думаю всех мама учила что попало не запускать :)
А что код настолько ценен что его жалко выложить?
← →
MUHAMOR (2004-06-18 08:26) [14]Нет в нем ничего ценного. Просто в итоге все оказалось намного проще....
И почемуто комуто лень мозгами шевелить
http://muhamorchik.narod.ru/distrib/Export.zip
← →
Mim1 © (2004-06-18 08:56) [15][14] MUHAMOR (18.06.04 08:26)
С чего вы взяли что вы пошевелили мозгами? Вы и не нашли ничего оригинального. Такая идея была еще в [3].
Задача была в нахождении не самого простого решения а наиболее красивого.
Без эффекта описанного автором
> же появляется это надоедливое окно "Вы собираетесь открыть
> 20 файлов, это может занять длительный процесс...".
Вообщем можно было не бросаться кодить а просто написать сюда алгоритм. Ваше решение с записью параметров в реестр уж простите никак красивым не назову.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.031 c