Плеер, Одна проблемка. |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Плеер, Одна проблемка. |
volvo |
24.08.2007 19:38
Сообщение
#21
|
Гость |
Правильнее будет - так:
var Попробуй, что ЭТОТ вариант тебе выдаст? (не забудь потом удалить D, чтоб не было утечки) Сообщение отредактировано: volvo - 24.08.2007 19:39 |
Артемий |
24.08.2007 20:51
Сообщение
#22
|
Помощник капитана Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: 2 |
Кажется я понял проблему...
Смотри,так работает: d := StrNew(PChar('D:\1.mp3')); А так нет: d := StrNew(PChar(System.ParamStr(1))); То есть я понял,что гвоздь в этом System.ParamStr!Теперь тупик еще более противен! Добавлено через 15 мин. Да,твой вариант работает,но как показал выше.^ Сообщение отредактировано: Артемий - 24.08.2007 21:07 -------------------- Dum spiro spero!
|
hardcase |
24.08.2007 21:08
Сообщение
#23
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Хм.... Может глупость...
А что если открыть сокет на 127.0.0.1 (т.е. локально) и слушать его на поступление имен файлов, которые нужно проиграть. -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Артемий |
24.08.2007 21:14
Сообщение
#24
|
Помощник капитана Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: 2 |
Нет,нужно именно через Post или SendMessage
-------------------- Dum spiro spero!
|
hardcase |
24.08.2007 21:18
Сообщение
#25
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Нет,нужно именно через Post или SendMessage Дело в том, что в случае с именами файлов будет проблема с выделением памяти. Послать сообщение элементарно. Но сообщение может вместить лишь 2 DWORD'а. А строка обычно длинная, если это полный путь к имени файла. Выделяя память в одном процессе ты не сможешь передать этот указатель в другой. В этом случае нужно организовывать передачу информации через общую память (filemap), интерфейс-петлю (127.0.0.1) или программные каналы (pipes).В случае с программными каналами тебе даже не придется искать, запущен ли твой плеер уже или нет. При старте программы, она пытается открыть pipe, если получилось, значит один экземпляр плеера уже запущен, потому просто пишем туда имя файла. Если открыть не получилось - мы первые, потому создаем канал и слушаем его. Сообщение отредактировано: hardcase - 24.08.2007 21:24 -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Артемий |
24.08.2007 21:24
Сообщение
#26
|
Помощник капитана Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: 2 |
Ну а привести тогда код любого из этих путей можешь?..я с этим не работал.
Добавлено через 3 мин. Вообще,я понял что ParamStr с PostMessage не катит,да? Сообщение отредактировано: Артемий - 24.08.2007 21:25 -------------------- Dum spiro spero!
|
volvo |
24.08.2007 22:37
Сообщение
#27
|
Гость |
Цитата Вообще,я понял что ParamStr с PostMessage не катит,да? Получите, распишитесь
|
hardcase |
25.08.2007 0:14
Сообщение
#28
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Ну а привести тогда код любого из этих путей можешь? Вот пример создания каналов.Первый запуск приложения приведет к созданию именованного канала, последующие запуски будут просто отсылать первому приложению данные. Прикрепленные файлы PipeListener.zip ( 6.87 килобайт ) Кол-во скачиваний: 141 -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Артемий |
25.08.2007 11:26
Сообщение
#29
|
Помощник капитана Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: 2 |
2volvo
Ты крууут! -------------------- Dum spiro spero!
|
Текстовая версия | 28.04.2024 12:36 |