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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Bokul
сообщение 22.08.2007 17:10
Сообщение #2


Гуру
*****

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

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


Как я понимаю на этапе использования PostMessage, ты уже уверен что твое приложение запущенно. А значит можешь идентифицировать его, например, по названию оконного заголовка или класса окна. Для этого в WinApi есть функция FindWindow. Первый параметр - название класса окна, второй - название заголовка окна. Есть возможность искать только по одному из параметров (в случае когда второй неизвестен), подставляя под значение другого nil, но гарантия нахождения именно твоего окна увеличивается при задании сразу двух параметров. Результат этой функции, в случае успешного выполнения, вернет handle твоего окна (того, что стартовало первым). Именно за этим мы использовали FindWindow, ибо первый аргумент функции PostMessage и есть handle окна, которому ты хочешь отправить сообщение. В качестве Msg можешь указать WM_ADD_IN_PLAYLIST (из поста hiv'a), а полезную нагрузку будут выполнять два оставшихся параметра. Вернее в нашем случае понадобиться только один. Тип каждого из них это DWord, который занимает 4 байта. Как раз как и pointer или pChar... Т.е. ты просто приводишь свою строку к DWord и передаешь получившиеся как аргумент в функцию.


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  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

 



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