In Silverlight 5 è possibile eseguire codice nativo (API Win32) attraverso la funzionalità nota come P/Invoke. Il suo utilizzo si basa sull'attributo DllImport, di System.Runtime.InteropServices, che permette di specificare la DLL di codice nativo.
Nell'esempio andiamo ad utilizzare la User32.dll la cui funzione MessageBeep ci permette di riprodurre i comuni suoni informativi, definiti a livello di sistema operativo, quindi personalizzati anche dall'utente.
[DllImport("User32.dll")]
private static extern Boolean MessageBeep(UInt32 beepType);
private void ICONINFORMATION_Click(object sender, RoutedEventArgs e)
{
uint t = Convert.ToUInt32("0x00000040", 16); //ICONINFORMATION
MessageBeep(t);
}
private void ICONWARNING_Click(object sender, RoutedEventArgs e)
{
uint t = Convert.ToUInt32("0x00000030", 16); //ICONWARNING
MessageBeep(t);
}Come possiamo vedere nello snippet precedente, la funzione MessageBeep accetta un UInt32 come parametro, che corrisponde ad uno dei suoni di sistema: "0x00000030" per il warning, "0x00000010" per lo stop, ecc..
Tutti i dettagli di MessageBeep e degli altri suoi si possono trovare all'indirizzo
http://msdn.microsoft.com/en-us/library/ms680356%28v=vs.85%29.aspx .
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Gestire il ciclo di vita di AbortController in Javascript
Ciclo di vita risorse con .NET Aspire
Creare popup e menu nativi in HTML con la Popover API
Impostare automaticamente l'altezza del font tramite CSS
Gestione opzioni colonna nella Blazor QuickGrid
Utilizzare il Null conditional assignment di C# 14
Leggere il contenuto di un file zip tramite le classi del namespace System.IO.Compression
Nuove validazioni Form Blazor
Creare una UI per i tool MCP con resource e Azure Functions
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Migliorare accessibilità e interazioni nelle pagine HTML con gli attributi inert e autofocus


