Wtyczka do Winampa pobierająca tytuł utworu

0

Witam, jestem tu nowy.

Proszę o pomoc w napisaniu prostej wtyczki do programu Winamp, która pobiera tytuł odtwarzanego utworu i wyświetla go w okienku.
Język programowania Borladn Delphi 7.0.

0

a konkretnie to czego nie potrafisz? Bo jak chcesz, żeby ktoś to za ciebie napisał to nie ten dział - praca + podanie kwoty ile jesteś w stanie za to zapłacić

0

Pokaż, co już zrobiłeś.

0

@fexel: Google Tobie biedaku zablokowali? Chwila szukania i mamy: http://forums.winamp.com/showthread.php?t=224914 a jeżeli chodzi o pobranie fizycznej nazwy otwarzanego pliku lub aktualnego adresu stacji radiowej to taki kod też pochodzi z wyszukiwania w google, tylko go zaadaptowałem do swoich potrzeb. Poniżej przykład. Chociaż oczywiście w kodzie dllki z Twoim pluginem nie musisz tak wykrywać uchwytu okna. Ponieważ Plugin.HwndParent gdzie Plugin to zmienna typu WinampGeneralPurposePlugin w funkcji Init zawiera co trzeba. Piszę to na podstawie własnych kodów prostych wtyczek z kategorii "ogólnego zastosowania". Chociaż pewnie jakby pokombinować samo SDK pozwala może na takie rzeczy. Ja potrzebowałem taką informację poza wtyczką, kiedyś w zewnętrznym programie. Oczywiśćie podana klasa okna jest dla oldskool wyglądu, nowsza skórka ma inna nazwę klasy, o ile pamiętam. Przykładowe wtyczki z modułami oraz SDK także w Delphi, również można oczywiście sobie wygooglować. Jest tylko jeden "problem". Trzeba chcieć to zrobić, nie pisząc z każdym pytaniem na forum. A robić to tylko w przypadku konkretnych problemów, kiedy najpierw się trochę samodzielnie przy tworzeniu wtyczki pokombinowało.

//...
const
  WinAmp_Class = 'Winamp v1.x';
//..
function GetWinampFilename: string;
var
  TempStr : string;
  WinAmp_HWND, TempHandle : THandle;
  Dat2 : array[0..500] of Char;
  TrackPos : integer;
  Temp, MPointer : cardinal;
begin
  WinAmp_HWND := FindWindow(WinAmp_Class, nil);
  TrackPos := SendMessage(WinAmp_HWND, WM_USER, 0, 125);
  MPointer := SendMessage(WinAmp_HWND, WM_USER, TrackPos, 211);
  GetWindowThreadProcessId(WinAmp_HWND, TempHandle);
  WinAmp_HWND := OpenProcess(PROCESS_ALL_ACCESS, False, TempHandle);
  ReadProcessMemory(WinAmp_HWND, Pointer(MPointer), @Dat2, 500, Temp);
  CloseHandle(WinAmp_HWND);
  TempStr := Dat2;
  Result := TempStr;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1