Winamp Playliste auslesen (Erledigt)

Anfängerfragen zum Programmieren mit PureBasic.
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Winamp Playliste auslesen (Erledigt)

Beitrag von enigma »

Hallo,
ich versuche mit PureBasic die Winamp-Playlist auszulesen. Bei meiner Suche habe ich folgendes gefunden:

Code: Alles auswählen

Procedure Winamp_GetPlaylistTitle()                 
  LastPlayListTitle = PeekS(SendMessage_(hWndWinamp, #WM_USER, (PlLength-1), #WINAMP_IPC_GETPLAYLISTTITLE))
  ProcedureReturn 
EndProcedure
Allerdings bekomme ich nur ein unleserliches Zeichen zurück.
Wenn ich SendMessage_ ohne PeekS aufrufe

Code: Alles auswählen

LastPlayListTitle = SendMessage_(hWndWinamp, #WM_USER, (PlLength-1), #WINAMP_IPC_GETPLAYLISTTITLE)
bekomme ich eine mehrstellige Zahl zurück die mir auch nicht weiter hilft.

Was mache ich falsch???
Hat jemand einen Tip für mich?

Gruß Enigma
Zuletzt geändert von enigma am 24.02.2014 22:31, insgesamt 1-mal geändert.
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: Winamp Playliste auslesen

Beitrag von Derren »

Warum postest du keinen lauffähigen Code?

Ich find nicht mal das Winamp Fenster. Hab mit ShoWin den Titel ausgelesen, und FindWindow_() gibt trotzdem null zurück.
Den Wert der Konstante hab ich mir auch ergoogeln müssen.

Und ein Link zu dem ursprünglichen Code den du als Vorlage verwendest wär vielleicht auch nett.


edit: So, hab es jetzt soweit, bekomme aber immer einen IMA oder einen leeren String.

Code: Alles auswählen

EnableExplicit

Define hWndWinamp = FindWindow_("Winamp v1.x",#Null)

#WINAMP_IPC_GETPLAYLISTTITLE = 212

Procedure Winamp_GetPlaylistTitle(hWnd, playListEntry)        
	Protected result.i
	
	result = SendMessage_(hWnd, #WM_USER, playListEntry, #WINAMP_IPC_GETPLAYLISTTITLE)
	
	Debug result ;immer konstant, auch wenn man dne Playlisteintrag verändert
	
	If result				
		Debug MemoryStringLength(result) ;Sogar hier schon ein IMA		
		Debug ">>"+PeekS(result)+"<<" ;IMA
		
	EndIf
	
EndProcedure

Winamp_GetPlaylistTitle(hWndWinamp, 10)
Signatur und so
- chris -
Beiträge: 195
Registriert: 24.08.2005 19:52
Wohnort: Stadtallendorf

Re: Winamp Playliste auslesen

Beitrag von - chris - »

Code: Alles auswählen


;http://forums.winamp.com/showthread.php?threadid=180297
;http://www.entwickler-ecke.de/topic_wie+kann+man+die+Playlist+von+Winamp+einlesen_48816,0.html

#IPC_GETLISTLENGTH           = 124
#WINAMP_IPC_GETPLAYLISTTITLE = 212

*buffer = AllocateMemory(1024)
If *buffer = 0
  End
EndIf

hWndWinamp = FindWindow_("Winamp v1.x", 0)

If hWndWinamp

  ListLength = SendMessage_(hWndWinamp, #WM_USER, 0, #IPC_GETLISTLENGTH)
  Debug ListLength

  BaseAdress = SendMessage_(hWndWinamp, #WM_USER, 0, #WINAMP_IPC_GETPLAYLISTTITLE)
  Debug BaseAdress

  GetWindowThreadProcessId_(hwndWinamp, @ProcessId)
  Debug ProcessId

  hProcess = OpenProcess_(#PROCESS_ALL_ACCESS, #False, ProcessId)
  Debug hProcess

  ReadProcessMemory_(hProcess, BaseAdress, *buffer, 1024, @NumberOfBytesRead)
  Debug NumberOfBytesRead
  Debug PeekS(*buffer, -1, #PB_Ascii)

  CloseHandle_(hProcess)

EndIf

PB v5.72 x86/x64
Windows 10 Pro 64bit
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Winamp Playliste auslesen

Beitrag von enigma »

@ - chris -

besten Dank für deine schnelle Antwort. Genau das habe ich gesucht. :allright:
Jetzt muss ich es nur noch verstehen. :roll: Werde mir dazu mal deine Links ansehen.

@ Derren

auch dir vielen Dank für deine Mühe.

Gruß
Enigma
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Winamp Playliste auslesen (Erledigt)

Beitrag von Sicro »

- chris - hat geschrieben:

Code: Alles auswählen

[...]hProcess = OpenProcess_(#PROCESS_ALL_ACCESS, #False, ProcessId)
Alle Rechte sind nicht erforderlich, #PROCESS_VM_READ reicht.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Winamp Playliste auslesen (Erledigt)

Beitrag von enigma »

@Sicro

Danke, getestet und für gut befunden :mrgreen: aber was bringt mir das? Geschwindigkeit? Speicher? ...?

Danke für eine Info

Gruß
Enigma
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Winamp Playliste auslesen (Erledigt)

Beitrag von NicTheQuick »

Das bringt dir so einiges. Virenscanner meckern nicht oder weniger. Man braucht eventuell keine Adminrechte. Du musst immer auch andere Windows-Systeme in Betracht ziehen.
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Winamp Playliste auslesen (Erledigt)

Beitrag von enigma »

Aha

Besten Dank
Enigma
Antworten