Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 111

/ вопрос открыт /

Привет! Тут столкнулся с такой проблемой:
нужно определить какая музыка играет сейчас на компьютере. Хотя бы на Winamp'е. Хотел сделать через FindWindow, но потом вспомнил, что у Winamp'а заголовок меняеться вместе с песней.
Как быть?

Евгений Козаченко Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Евгений Козаченко (статус: 2-ой класс)
Вопрос отправлен: 22 августа 2006, 19:34
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Евгений Козаченко!
Просканируйте все окна (GetNextWindow и т.п.), если в заготовку есть " - Winamp", значит это WinAmp и он проигрывает композицию, заголовок которой можно вычленить из оригинального заголовка нйденного окна.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 22 августа 2006, 23:10
Оценка за ответ: 3

Ответ #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

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;
С уважением.
Евгений Козаченко

Евгений Козаченко (статус: 2-ой класс), 23 августа 2006, 13:49 [#2]:

Dron, спасибо :)
Dron

Dron (статус: Студент), 23 августа 2006, 13:51 [#3]:

Пожалуйста :-) Жаль, что сразу в ответ не вставил...
С уважением.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:48
Выполнено за 0.02 сек.