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
Eseguire operazioni sui blob con Azure Storage Actions
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Cache policy su route groups di Minimal API in ASP.NET Core 7
Utilizzare la libreria Benchmark.NET per misurare le performance
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Creare un'applicazione React e configurare Tailwind CSS
Workflow di continuous deployment tramite pull request label in GitHub
Usare le variabili per personalizzare gli stili CSS
Utilizzare i primary constructor in C#
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Gestione degli environment per il deploy con un workflow di GitHub
Utilizzare un service principal per accedere a Azure Container Registry