.NET e gestione messaggi vocali

Se in un applicativo può essere utile gestire dei messaggi vocali è possibile ricorre alle classi del Namespace System.Speech.Synthesis e in particolare alla classe SpeechSynthesizer di seguito un semplice esempio di codice per la gestione di un messaggio vocale: Using speechSynthesizer As New System.Speech.Synthesis.SpeechSynthesizer speechSynthesizer.SetOutputToDefaultAudioDevice() speechSynthesizer.Speak(“Messaggio vocale di test!”) End Using Il metodo SetOutputToDefaultAudioDevice imposta…



Considerazioni sul licensing dei Remote Desktop Services

Su ICTPower.it ho pubblicato l’articolo Considerazioni sul licensing dei Remote Desktop Services (RDS) in cui ho raccolto alcune considerazioni sul licensing dei Remote Desktop Services tratte dall’analisi dell’EULA (End-User License Agreement) di di Windows Server e Windows. Vi sono infatti alcuni aspetti a cui occorre infatti prestare attenzione per quanto riguarda la necessità di possedere…



Struttura System.Drawing.Color e XmlSerializer

Se si è provato a serializzare in XML la struttura System.Drawing.Color tramite un oggetto della classe System.Xml.Serialization.XmlSerializer si sarà notato che questa non viene serializzata correttamente. Il motivo dipende dal fatto che l’XmlSerializer richiede che l’oggetto da serializzare abbia un costruttore pubblico senza parametri come indicato nella KB330592 Error message when you serialize a class…



Sincronizzare la scrollbar di due RichTextBox

Talvolta in applicazioni .NET WinForms (Windows Forms) potrebbe essere utile sincronizzare la scrollbar verticale di due RichTextBox ad esempio se si vuole realizzare un semplice visualizzatore di testo che abbia la funzionalità di mostrare anche il numero di riga. Un semplice visualizzatore di questo tipo può essere realizzato, ad esempio, tramite due RichTextBox, uno che…



Windows 10: Impostazione e aggiornamento dell’immagine per la schermata di blocco tramite GPO

Per impostare l’immagine della schermata di blocco è possibile utilizzare la gpo Computer Configuration\Administrative Templates\Control Panel\Personalization\Force a specific default lock screen image (si noti comunque che tale policy è applicabile solo alle SKU Enterprise, Educational e Server). Purtroppo in diverse versioni di Windows 10 quando l’immagine che si è impostata per la schermata di blocco…



Impedire la selezione di un controllo

Nelle applicazioni .NET WinForms (Windows Forms) vi sono casi in cui è preferibile che determinati controlli in una Form non possano essere selezionabili ovvero non sia possibile impostare il Focus su di loro. Si pensi ad esempi ad un pulsante in una form che esegue un certa azione, per default un pulsante è selezionabile ovvero…



Deploy degli aggiornamenti di Office 2019 tramite WSUS

Nell’articolo Novità di Office 2019 per IT Pro avevo analizzato come gestire gli aggiornamenti di Office 2019 riportando che non era possibile utilizzare Windows Server Updates Services (WSUS). Tale indicazione è tuttora riportata in Update Office 2019 (for IT Pros): “Since updates are cumulative and already included in the latest version of Office 2019 on…



Limitare i valori possibili di una proprietà durante l’editazione tramite PropertyGrid

Come avevo scritto nel post Considerazioni sulla gestione delle impostazioni di applicazioni WinForm tramite PropertyGrid talvolta per applicazioni WindowsForms può essere comodo utilizzare un PropertyGrid per l’editazione di impostazioni. Sempre in tali scenari può essere utile personalizzare l’impostazione di una proprietà restringendo la scelta del valore ad un set predefinito di valori. Per limitare i…



Considerazioni sulla gestione delle impostazioni di applicazioni WinForm tramite PropertyGrid

In questi giorni a tempo perso sto sviluppando l’applicazione .NET WinForms PowerTray che ha l’obbiettivo di poter eseguire script PowerShell e di visualizzare l’output quando lo si desidera tramite una un’icona nella tray bar. L’obbiettivo di PowerTray, attualmente in sviluppo, è quello di implementare funzionalità simili a BgInfo, ma con una maggiore flessibilità nell’aggiornamento dell’output,…



Vulnerabilità CVE-2019-0708 – Remote Desktop Services Remote Code Execution Vulnerability

Il 14 maggio 2019 è stata resa nota una vulnerabilità dei Remote Destop Services che permette l’esecuzione di codice remoto denominata MITRE – CVE-2019-0708: A remote code execution vulnerability exists in Remote Desktop Services formerly known as Terminal Services when an unauthenticated attacker connects to the target system using RDP and sends specially crafted requests,…