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