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
Eliminare una project wiki di Azure DevOps
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Il nuovo controllo Range di Blazor 9
Utilizzare QuickGrid di Blazor con Entity Framework
Gestione dei nomi con le regole @layer in CSS
Implementare l'infinite scroll con QuickGrid in Blazor Server
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Utilizzare WhenEach per processare i risultati di una lista di task
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Migliorare la sicurezza dei prompt con Azure AI Studio
Change tracking e composition in Entity Framework
Proteggere le risorse Azure con private link e private endpoints