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.
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.
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ć
Pokaż, co już zrobiłeś.
@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;