![]() |
Pfad des aktuellen WinAmp-Liedes korrekt auslesen
Zum Auslesen des Pfades benutze ich derzeit folgende Funktion:
Delphi-Quellcode:
Auf den ersten Blick scheint das auch recht gut zu funktionieren.
function Tmain_form.GetWinampFileName(Index: Integer): String;
const IPC_GETPLAYLISTFILE = 211; WM_WA_IPC = WM_USER; var Process, ReadCount, PID: DWord; hWndWinamp: hWnd; Title: String; iTitle: Integer; begin hWndWinamp := FindWindow(PChar('Winamp v1.x'), nil); if (Index < 0) then Index := SendMessage(hWndWinamp, WM_USER, 0, 125); GetWindowThreadProcessId(hWndWinamp, @PID); Process := OpenProcess(PROCESS_VM_READ, FALSE, PID); SetLength(Title, 256); iTitle := SendMessage(hWndWinamp, WM_WA_IPC, Index, IPC_GETPLAYLISTFILE); ReadProcessMemory(Process, Pointer(iTitle), @Title[1], 256, ReadCount); CloseHandle(Process); Result := Title; end; Allerdings versuche ich zu überprüfen, ob das Lied in einer Playlist ist, und dieser Pfad-Vergleich geht immer schief. Beim Debuggen habe ich nun gemerkt, dass GetWinampFileName(-1) noch viel mehr enthält, als den Pfad des aktuellen Liedes. Hier ein Beispiel:
Code:
Lässt sich die Funktion so erweitern, dass wirklich nur noch der Pfad enthalten ist oder muss ich den String immer irgendwie abschneiden?
'I:\MP3\xxx\yyy\zzz.mp3'#0'3'#0'a.mp3'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 Vielen Dank im Voraus! Was [edit=MrSpock]Zeilenumbrüche zwischen die vielen #0en eingefügt. Mfg, MrSpock[/edit] |
Re: Pfad des aktuellen WinAmp-Liedes korrekt auslesen
Nimm statt Title: string lieber einen PChar mit entsprechender Länge, dann funktionierts ;)
|
Re: Pfad des aktuellen WinAmp-Liedes korrekt auslesen
Dankeschön!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz