Показать сообщение отдельно
  #5  
Старый 04.09.2009, 18:55
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

Код:
//создай вот такую функцю
function NowPlayingWindowProc(wnd, msg, wparam, lparam : Integer) : integer; stdcall;
begin
  case msg of
    WM_USER : //Агентру еще проверяет играется ли сейчас песня
                    //Для этого винампу посылается WM_USER, 104, 0
                    //1 - играет  3-пауза.
      if lParam = 104  then Result := 1 else
      Result := DefWindowProc(wnd, msg, wparam, lparam);
    else
    Result := DefWindowProc(wnd, msg, wparam, lparam);
  end;
end;

//Это выполни при создании формы
var
  NowPlayingWnd : HWND;
  wc : TWndClass;
begin
  ZeroMemory(@wc, SizeOf(Wc));
  wc.lpfnWndProc := @NowPlayingWindowProc;
  wc.hInstance := HInstance;
  wc.lpszClassName := 'Winamp v1.x';//помоему так
  RegisterClass(wc);

  NowPlayingWnd := CreateWindow('Winamp v1.x', '<Нет трека>', 0, 0, 0, 0, 0, 0, 0, HInstance, nil);
end.

Что бы изменить текущую песню - поменяй заголовок
Код:
SetWindowText(NowPlayingWnd, 'Terra Fantastica - Flavus ');

Когда окно не будет нужно, сделай так
Код:
DestroyWindow(NowPlayingWnd )
Вроде так.

_________
Маленькая ошибка закралась в WM_USER необходимо проверять Lparam а не Wparam на 104
_________
А, да, сам метод - мы "притворяемся" винампом.
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием