Pobieranie lokalizacji pliku granego w winampie

0

Witam,

Czy jest jakaś możliwość pobierania lokalizacji pliku aktualnie odtwarzanego w winampie? Wiem, że można zrobić to modyfikując wyświetlanie tytułu programu, ale ja chce zrobić to w inny sposób.

Zauważyłem, że winamp posiada plugin gen_wa5samurizeinfo.dll do Samurize, który podaje lokalizację odtwarzanego utworu. Może to da jakoś się wykorzystać?

Pozdrawiam.

0

Da się w ten sposób jak poniżej. Użyłem tego w jednym programie i działa poprawnie. Kod znalazłem cudem
na google, był chyba tylko w jednym wątku może nawet na forum supportu WinAmpa - nie pamiętam już. A
i nazwa klasy okna może być inna niż ta poniżej, bo ja używam starego interface'u bez menu pod belką. Ale
nazwę klasy sobie możesz ustalić pisząć program w Delphi lub używając jakiegoś gotowego choćby tdwininfo.
W przypadku gdy odtwarzany jest studmien z jakiegoś radia internetowego - zwrócony zostanie pełny adres.

//...
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;
0

Oki, dzięki w wolnym czasie sprawdzę :)

EDIT:

Jesteś wielki, szukałem tego chyba z rok. Działa!

Dzięki

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