|
Вопрос # 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]:
Пожалуйста Жаль, что сразу в ответ не вставил...
С уважением.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|