I've got a Perl/Tk application that I'm using to control WinAmp, via the
WM_COMMAND API provided by WinAmp.
To start with, if I start up WinAmp manually, and run a simple script like
this:
#####
use Win32::GUI;
$winamphandle = Win32::GUI::FindWindow("Winamp v1.x","");
print "Handle: $winamphandle\n";
Win32::GUI::SendMessage( $winamphandle, WM_COMMAND, 40045, 0 );
sleep(1);
Win32::GUI::SendMessage( $winamphandle, WM_COMMAND, 40047, 0 );
#####
It works fine. Winamp starts and then stops a second later.
However, in my real Perl/Tk app, I can't stop WinAmp. I start the Perl/Tk
app, and it launches WinAmp. I've tried launching WinAmp two different
ways:
Win32::Process::Create($object, $mp3player,'',0, NORMAL_PRIORITY_CLASS, ".");
and
open (MP3Player,"|$mp3player");
WinAmp starts fine both ways, and I can get a handle ID with:
$winamphandle = Win32::GUI::FindWindow("Winamp v1.x","");
So that part works fine.
But in a subroutine, when I try:
print ("Stopping handle $winamphandle\n");
Win32::GUI::SendMessage( $winamphandle, WM_COMMAND, 40047, 0 );
WinAmp doesn't stop.
So is there a difference in Win32::GUI's actions when WinAmp is launched
from within another appliction, versues when it's started manually?
Does anyone have any ideas on this problem?
Thanks,
Wade
--
Fight for your rights in the digital age:
http://www.speakeasy.org/~russotto/dangerous.html
http://www.digitalconsumer.org/
http://digitalspeech.org/