Interestingly, MessageBeep() doesn't work on my XP machine but Beep() does.
use strict;
use Win32::API;
my $msgBeep = Win32::API->new('user32', 'MessageBeep', 'N', 'N') or
die "Can't create a beep function: $^E\n";
my $beep = Win32::API->new('kernel32', 'Beep', 'NN', 'N') or die
"Can't create a beep function: $^E\n";
$msgBeep->Call(-1);
$beep->Call(440, 1000);
One more way to do it and I'll call it a day:
From mmsystem.h:
#define sndAlias(c0,c1)
(SND_ALIAS_START+(DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8))
#define SND_ALIAS_SYSTEMASTERISK sndAlias('S','*')
#define SND_ALIAS_SYSTEMQUESTION sndAlias('S','?')
#define SND_ALIAS_SYSTEMHAND sndAlias('S','H')
#define SND_ALIAS_SYSTEMEXIT sndAlias('S','E')
#define SND_ALIAS_SYSTEMSTART sndAlias('S','S')
#define SND_ALIAS_SYSTEMWELCOME sndAlias('S','W')
#define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S','!')
#define SND_ALIAS_SYSTEMDEFAULT sndAlias('S','D')
That means that the system default constant is 17491, so the perl code is:
use strict;
use Win32::API;
my $sndPlaySound = Win32::API->new('winmm', 'sndPlaySound', 'PI', 'I')
or die "Can't create a beep function: $^E\n";
$sndPlaySound->Call(17491, 0);
_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs