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;