Controlling WinAMP (WM_COPYDATA problem)
Available news archives: comp.lang.tcl - comp.lang.python - comp.security.firewalls - sci.crypt - comp.lang.php - comp.lang.javascript
Google
 
Web news.hping.org


comp.lang.python archive

Controlling WinAMP (WM_COPYDATA problem)

From: The Collector <thecollector.2k@gmail.com>
Date: Thu Jun 30 2005 - 20:48:31 CEST

Hi,

I've been looking for almost two full days now to get full control of
WinAMP using python. Simple play/stop functions are no problem. It's
the WM_COPYDATA that's used by IPC_PLAYFILE (=add a file to the
playlist) that's giving me troubles big time!

My latest test code:
---------------------------------------
from win32gui import FindWindow
from win32api import SendMessage
import struct
import array

WM_USER = 0x400 # WM-ID for
a WinAMP user command
WM_COPYDATA = 0x004A # WM-ID for
a WinAMP copyData command
IPC_PLAYFILE = 100 # WM-ID for
WinAMP to add item to WinAMP playlist

hWnd = FindWindow('Winamp v1.x', None) # Find the
WinAMP window-handle (receiver)

def packData( dwData, lpData ):
    lpData_ad = array.array('c', lpData).buffer_info()[0] # calculate
the pointer address for the lpData
    cbData = array.array('c', lpData).buffer_info()[1] # calculate
the length of the lpData (=cbData)
    cds = struct.pack("IIP", dwData, cbData, lpData_ad) # pack
dwData, cbData and lpData into a copyDataStruct
    cds_ad = array.array('c', cds).buffer_info()[0] # find the
pointer address of the copyDataStruct
    return cds_ad # return
the copyDataStruct pointer-address

def addItemToPlaylist( item ):
    uInt = IPC_PLAYFILE # ID for
adding an item to the WinAMP playlist
    wParam = 0 # Not
defined (leave at zero)
    lParam = packData( uInt, item ) # create
the copyDataStruct-pointer
    SendMessage( hWnd, uInt, wParam, lParam ) # Send the
data to the WinAMP window

file = r"C:\Party Animals - Atomic.mp3"
addItemToPlaylist( file )
---------------------------------------

the code runs fine, no errors, but nothing happens!! I've already had a
test in which garbage was added to the playlist, but that's it...

Anybody, any ideas on the problem? tnx...
Received on Thu Sep 29 16:40:25 2005