Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2013, 21:00   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Связывание shellexecute и музыкального файла

Здравствуйте, возможно ли такое, чтобы при вызове shellexecute открывался какой-то файл и воспроизводилась музыка через tmediaplayer, а при закрытии этого файла музыка исчезала? Проблема в исчезании музыки, есть ли доступное решение этого вопроса?

кстати, вот код
Код:
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
var s:string;
begin
  if Msg.HotKey = id1 then // если была нажата клавиша F!. то вызываем справку
  begin
  s:=ExtractFilePath(ParamStr(0))+'spr.htm';
  if FileExists(s) then
    ShellExecute(Handle, nil, PChar(s), nil, nil, SW_SHOWNORMAL)
    else begin
      ShowMessage('Файл справки не обнаружен!');
      Exit;
    end;
     s:=ExtractFilePath(ParamStr(0))+'sound1.wav';
      if FileExists(s) then
      begin
       MediaPlayer1.FileName:=s;
       MediaPlayer1.Open;
       MediaPlayer1.Play;
      end;
  end;
end;
from dark to light)

Последний раз редактировалось Алексей_2012; 15.12.2013 в 21:06.
Алексей_2012 вне форума Ответить с цитированием
Старый 15.12.2013, 21:08   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

то есть если spr.htm закрыт, то выполнить mediaplayer1.stop
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.12.2013, 21:13   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Есть. Запускать через CreateProcess() или ShellExecuteEx() но в дополнительном потоке. Там же WaitForSingleObject() ждать пока запущенное не закроется, и после этого останавливать музню. Еще раз повторю: Это стоит делать в дополнительнои потоке, чтоб основной не замерз и музня не прервалась, пока поток ждет закрытия запущенного.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2013, 21:17   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

а как это реализовать? просто можно добавить кнопке, но автоматика всегда лучше
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.12.2013, 21:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А вот смотри:http://www.programmersforum.ru/showthread.php?t=134154
Тут красиво и лаконично пример сделан.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить как вытащить эту всю информацию из тегов музыкального файла (файлы разных форматов, к примеру:mp3, .ogg, .wav, .wma С++ DvAlex Помощь студентам 5 09.10.2012 14:24
Иконка от музыкального файла формата .mp3 саша40 Мультимедиа в Delphi 3 23.09.2012 17:02
Повторение воспроизведения музыкального файла JonMagon Помощь студентам 3 13.05.2011 10:05
Как изменять атрибуты музыкального файла такие как Исполнитель, Альбом и т.п. TwiX Общие вопросы Delphi 4 22.01.2010 14:48
ShellExecute и путь до файла k1r1ch Общие вопросы Delphi 4 28.06.2009 19:56