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

Vea también

Funciones de control de errores

MessageBeep

Notificación al usuario