Suonare i suoni di sistema con .NET

Share on:

Per suonare i suoni di sistema, quelli impostati nel Control Panel, bisogna utilizzare l'API PlaySound.

<DllImport("WINMM.DLL", CharSet:=CharSet.Auto)> _
Public Shared Function PlaySound(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
End Function
Public Const
SND_ASYNC As Long = &H1
Public Const SND_ALIAS As Long = &H10000

A quel punto bisogna però conoscere il nome dell'evento...

Non avendo trovato una tabella sono andato a spulciare il registry, e li ho trovati dentro HKCU\AppEvents\EventLabels.

Non tutti i nomi sono chiarissimi, ma ad esempio il suono dell'arrivo delle mail è MailBeep.

Quindi il codice per suonarlo diventa:

PlaySound("MailBeep", 0, SND_ASYNC Or SND_ALIAS)

L'elenco esatto delle costanti, e la descrizione dettagliata dell'API la trovate su MSDN.

Post originale