IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Плеер, Одна проблемка.
Артемий
сообщение 2.12.2006 17:26
Сообщение #1


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Вожусь с плеером.Ктонибудь не подскажет одну вещь: допустим я использую свой плеер по умолчанию (
  if not ('' = System.ParamStr(1)) then
with MediaPlayer1 do
begin
try
Filename := System.ParamStr(1);
{Ну и так далее...}
) Так вот когда я не закрывая первого экземпляра плеера открываю другой муз. файл, то открывается второй экземпляр плеера и там играет вторая мелодия. А я хочу чтобы 2-я мелодия играла в первом экземпляре.

Сообщение отредактировано: Артемий2 - 2.12.2006 17:27


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Артемий
сообщение 24.08.2007 21:14
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Нет,нужно именно через Post или SendMessage


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hardcase
сообщение 24.08.2007 21:18
Сообщение #3


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(Артемий @ 24.08.2007 22:14) *
Нет,нужно именно через Post или SendMessage
Дело в том, что в случае с именами файлов будет проблема с выделением памяти. Послать сообщение элементарно. Но сообщение может вместить лишь 2 DWORD'а. А строка обычно длинная, если это полный путь к имени файла. Выделяя память в одном процессе ты не сможешь передать этот указатель в другой. В этом случае нужно организовывать передачу информации через общую память (filemap), интерфейс-петлю (127.0.0.1) или программные каналы (pipes).

В случае с программными каналами тебе даже не придется искать, запущен ли твой плеер уже или нет.
При старте программы, она пытается открыть pipe, если получилось, значит один экземпляр плеера уже запущен, потому просто пишем туда имя файла. Если открыть не получилось - мы первые, потому создаем канал и слушаем его.

Сообщение отредактировано: hardcase - 24.08.2007 21:24


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Артемий2   Плеер   2.12.2006 17:26
hiv   Алгоритм такой: 1) Проверяешь при старте программы...   5.12.2006 15:56
Артемий2   Примерно что-то вроде этого думал, но не знал как ...   5.12.2006 18:25
Артемий   Извиняюсь за тормоз! А как именно приложению ...   22.08.2007 16:26
hiv   В смысле в PostMessage не разбираюсь.. Вот так п...   22.08.2007 17:10
Bokul   Как я понимаю на этапе использования PostMessage, ...   22.08.2007 17:10
Артемий   А как привести строку к dword?   22.08.2007 17:17
Bokul   dword(PChar). Хотя правильнее будет WPARAM(PChar) ...   22.08.2007 17:19
Артемий   Пасибо ребят! (если будут вопросы - отпишусь :...   22.08.2007 17:24
volvo   Гораздо надежнее было бы использовать CreateMutex...   22.08.2007 19:00
Bokul   А если вернуться к первоначальной, как повысить н...   22.08.2007 19:21
volvo   Ага, сейчас прямо... Все дела забросим и будем фай...   22.08.2007 19:41
Артемий   Блин, при компиляции программы FindWindow сразу на...   22.08.2007 21:57
volvo   Ну, во-первых, ты где прописал Caption формы? В Ob...   23.08.2007 0:10
Артемий   Ага,я понял.Спасибо за помощь!   23.08.2007 8:43
Артемий   Это опять я. :!low: :!low: Сообщение от вт...   24.08.2007 18:49
volvo   procedure TForm1.AppMessage(var Msg: TMsg; var Han...   24.08.2007 19:08
Артемий   Теперь ошибка происходит в этой строке: s := StrPa...   24.08.2007 19:13
volvo   :blink: У меня не происходит... Покажи, как ты пер...   24.08.2007 19:15
Артемий   В смысле как передаю? System.ParamStr(1)? Добавле...   24.08.2007 19:21
volvo   Правильнее будет - так: var d: PChar; procedur...   24.08.2007 19:38
Артемий   Кажется я понял проблему... Смотри,так работает: d...   24.08.2007 20:51
hardcase   Хм.... Может глупость... А что если открыть сокет ...   24.08.2007 21:08
Артемий   Нет,нужно именно через Post или SendMessage   24.08.2007 21:14
hardcase   Нет,нужно именно через Post или SendMessage Дело ...   24.08.2007 21:18
Артемий   Ну а привести тогда код любого из этих путей можеш...   24.08.2007 21:24
hardcase   Ну а привести тогда код любого из этих путей може...   25.08.2007 0:14
volvo   Получите, распишитесь :) const WM_ADD_TO_PLAY...   24.08.2007 22:37
Артемий   2volvo Ты крууут! :) :give_rose: :good: :go...   25.08.2007 11:26


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.07.2025 17:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"