After the release of windows vista the Windows Function Beep plays a beep on your connected speakers instead of the internal one.
Is there anyway to access the old function? Would it be possible by getting hold in an older windows api? Or is there any other way i can make this possible? If so i would like the ability to set both the frequency and duration.
I should mention that I´m actually targeting the windows xp platform.
No. The function is implemented in a Kernel32.dll, which is loaded at runtime from whatever version of the OS you’re currently running. Since the code isn’t there in either your executable or in a system DLL, you can’t run it (don’t even think about copying over Kernel32.dll from a different OS version, that’s just screaming for trouble).
You can try using
MessageBeepinstead ofBeep, but that gives you less control over the output and will probably still use your sound card instead of the internalFor an interesting history of the
MessageBeepfunction, see Larry Osterman’s blog.