| 
| 
 | Вопрос # 111/ вопрос открыт / | 
 |  Привет! Тут столкнулся с такой проблемой:нужно определить какая музыка играет сейчас на компьютере. Хотя бы на Winamp'е. Хотел сделать через FindWindow, но потом вспомнил, что у Winamp'а заголовок меняеться вместе с песней.
 Как быть?
 
|  |   Вопрос задал: Евгений Козаченко (статус: 2-ой класс)Вопрос отправлен: 22 августа 2006, 19:34
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович Здравствуйте, Евгений Козаченко!Просканируйте все окна (GetNextWindow и т.п.), если в заготовку есть " - Winamp", значит это WinAmp и он проигрывает композицию, заголовок которой можно вычленить из оригинального заголовка нйденного окна.
 Ответ #2. Отвечает эксперт: Dron Здравствуйте, Евгений Козаченко!Есть более оптимальный вариант. Существуют специальные компоненты, которые позволяют легко управлять Winamp'ом. Разработчики проигрывателя специально создали API для других программ. Один из таких компонент можно скачать здесь: https://www.delphi-int.ru/download/file/111/ Думаю, что с использованием проблем не будет. Ну а ежели не разберётесь - пишите. Удачи!
 
|  | Ответ отправил: Dron (статус: Студент)Время отправки: 23 августа 2006, 08:23
 Оценка за ответ: 4
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 23 августа 2006, 13:51; участников в обсуждении: 2. 
|   | Dron (статус: Студент), 23 августа 2006, 12:41 [#1]:Посмотрел я - оказывается этот компонент (а точнее - полупрограмма) не умеет получать название проигрываемой песни. Пошёл дальше - посмотрел компонент JvWinampApi из JediVCL, но и там такой функции нет. Поэтому пришлось немного изучить, что представляют собой окна Winamp и где этот заголовок можно достать... Результат успешный. Вот: function GetWinampSong: String;
 var H: HWnd; Song: Array[0..127] of Char;
 begin
 H:=FindWindow('Winamp v1.x',nil);
 GetWindowText(H,Song,SizeOf(Song));
 Result:=Song;
 end;
 С уважением. |  
|   | Dron (статус: Студент), 23 августа 2006, 13:51 [#3]:Пожалуйста  Жаль, что сразу в ответ не вставил... С уважением. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |