Función Beep (utilapiset.h)
Genera tonos simples en el altavoz. La función es sincrónica; realiza una espera alertable y no devuelve el control a su autor de la llamada hasta que finaliza el sonido.
Sintaxis
BOOL Beep(
[in] DWORD dwFreq,
[in] DWORD dwDuration
);
Parámetros
[in] dwFreq
La frecuencia del sonido, en hercios. Este parámetro debe estar comprendido entre 37 y 32 767 (0x25 a 0x7FFF).
[in] dwDuration
Duración del sonido, en milisegundos.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Hace mucho tiempo, todos los equipos PC comparten un chip de temporizador de intervalo programable común 8254 para la generación de sonidos primitivos. La función Beep se escribió específicamente para emitir un pitido en esa pieza de hardware.
En estos sistemas más antiguos, los controles de silenciamiento y volumen no tienen ningún efecto en Beep; todavía escucharía el tono. Para silenciar el tono, ha usado los siguientes comandos:
net stop beep
sc config beep start= disabled
Desde entonces, las tarjetas de sonido se han convertido en equipos estándar en casi todos los equipos PC. A medida que las tarjetas de sonido se volvieron más comunes, los fabricantes comenzaron a quitar el chip del temporizador antiguo de los equipos. Los chips también se excluyeron del diseño de equipos servidor. El resultado es que Beep no funcionaba en todos los equipos sin el chip. Esto estaba bien porque la mayoría de los desarrolladores se habían movido a llamar a la función MessageBeep que usa lo que sea el dispositivo de sonido predeterminado en lugar del chip 8254.
Finalmente debido a la falta de hardware con el que comunicarse, la compatibilidad con Beep se quitó en Windows Vista y Windows XP 64-Bit Edition.
En Windows 7, Beep se reescribió para pasar el pitido al dispositivo de sonido predeterminado para la sesión. Normalmente es la tarjeta de sonido, excepto cuando se ejecuta en Terminal Services, en cuyo caso el pitido se representa en el cliente.
Ejemplos
En el siguiente ejemplo se muestra el uso de esta función.
Beep( 750, 300 );
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | utilapiset.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |