Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.043 c
1-1093108838
Navi1982
2004-08-21 21:20
2004.09.05
Cos(x) и Sin(x) -- в чём дело?


6-1088698770
DelphiN!
2004-07-01 20:19
2004.09.05
как проверить соединение с интернетом на выделенной линии?


9-1084807193
Pirate
2004-05-17 19:19
2004.09.05
3D Движки


8-1087034489
Snip
2004-06-12 14:01
2004.09.05
DirectShow


1-1093011809
Lord de Mon
2004-08-20 18:23
2004.09.05
Что такое inherited





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский