Форум — Ответы     (  К темам )
 ?  Dr.Phoenix: Как установить Winamp'у определенную громкость? (21-04-2003 09:56:05)
Как установить Winamp'у определенную громкость? И как нажать кнопки Play, Stop, Pause?
 Alexander (21-04-2003 16:32:12)
Поскольку к WinAMP'у пишут плагины, то значит и интерфейс какой-то есть. Надо у них на сайте покопаться. Из более простых вариантов -
1) Перехвати сообщения, которые приходят к нему при нажатии кнопок и изменении значения ползунка громкости — через WinSpy — и попробуй послать анлогичные сообщения.
2) Посылай в систему сообщения якобы от мыши по координатам WinAmp'а (его родные можно найти через FindWindow, плюс ручками высчитай смещение, скажем из скриншота — и сделай вид, что на мыши нажали кнопку, ползунок переместили, отпустили кнопку). Однако тут есть проблемы — WinAmp бывает со скинами и т.д.
3) Вполне возможно, WinAmp является OLE-сервером и с ним можно работать через OLE Automation, как с Word-ом или Excel-ем.
 Dr.phoenix (21-04-2003 16:44:08)
1) Что за WinSpy и где он лежит?
2) Как посылать сообщения якобы от мыши, и как сэмулировать нажатие и отпускание кнопки?

По моему на всех скинах все ползунки расположены в одном и том же месте.
 Alexander (21-04-2003 17:17:23)
WinSpy — утилита, показывающая все сообщения в Windows (в частности, можно вроде посмотреть для конкретного окна). Входит / входило в комплект утилит для компиляторов C++, дай бог памяти в Borland C++ 4.5/5.0 она называется WinSight, в Visual C++ вроде как WinSpy.
Насчет мыши — надо послать desktop'у сообщение с кодом WM_LBUTTONDOWN — нажатие левой кнопки, потом WM_MOUSEMOVE, потом WM_LBUTTONUP — отпускание. Координаты — в параметрах (см. структуру TMessage ).
 Dr.Phoenix (21-04-2003 17:26:12)
Все оказалось очень просто:
///////////
HWND hwndWinamp=FindWindow("Winamp v1.x",NULL);
SendMessage(hwndWinamp,WM_USER, 255, 122); //255 — полная громкость
///////////
А ваще если на сайте винампа порыться, то можно много интересного найти.