Site icon Gioxx.org

Windows 10 e i messaggi “Deprecati” del Task Scheduler, come risolvere

Prima dell’aggiornamento a Windows 10, avevo uno o due processi programmati che mi mostravano a video un semplice messaggio di testo, un promemoria in alcune giornate ben precise, a orario precedentemente stabilito. Con l’ultima versione del sistema operativo di casa Microsoft questo non è più possibile, non con la stessa immediatezza almeno, poiché tale funzione è stata deprecata.

Chiaramente esiste il modo di aggirare l’ostacolo, si può passare da PowerShell e da fondamenti di Visual Basic. Un risultato esteticamente molto meno accattivante,ma che ti permette di portare a casa ciò che prima avevi.

Per poter aprire una finestra contenente il messaggio “promemoria“, il codice PowerShell è il seguente:

param (
[Parameter(Mandatory=$true)]
[String]$MsgTitle,
[Parameter(Mandatory=$true)]
[String]$MsgText
)
Add-Type -AssemblyName Microsoft.VisualBasic
$showWindowAsync = Add-Type –memberDefinition @”
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
“@ -name “Win32ShowWindowAsync” -namespace Win32Functions –passThru
function Show-PowerShell() { [void]$showWindowAsync::ShowWindowAsync((Get-Process –id $pid).MainWindowHandle, 10) }
function Hide-PowerShell() { [void]$showWindowAsync::ShowWindowAsync((Get-Process –id $pid).MainWindowHandle, 2) }
Clear-Host
Hide-PowerShell
$MsgBox = [Microsoft.VisualBasic.Interaction]
[void] $MsgBox::MsgBox($MsgText,0,$MsgTitle)
Show-PowerShell

I due parametri che il file PS1 si aspetta serviranno a specificare il titolo della finestra e il contenuto del messaggio che comparirà a video. Il tutto è chiaramente fattibile anche con un file VBScript, se lo preferisci. Se vuoi scaricare il file PS1 riportato sopra fai clic con il tasto destro sulla voce view raw (in basso a destra nel box) e scegli di salvare la destinazione con nome. Io ho adottato questa soluzione che in realtà nasce da un thread nel forum di WindowsSecrets.

Cerca l’attività nelle operazioni pianificate di Windows, modificala e vai a togliere l’azione (quella che mostrava il messaggio), anche perché provando a riattivarla o modificarla otterrai un errore a video:

A questo punto dovrai avviare un programma, dargli in pasto l’eseguibile di PowerShell (C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe) e specificare un argomento unico che vada a pescare il file PS1 precedentemente salvato, passando a quest’ultimo il titolo e il messaggio da mostrare a video, per esempio:

Nel mio caso, la riga dell’argomento contiene:

C:\Documenti\Script\ShowReminder.ps1 -MsgTitle 'Reminder' -MsgText 'Ciao, ricordati di fare il report'

dove il parametro MsgTitle corrisponde (ovviamente) al titolo del popup che ti comparirà a video, e MsgText il contenuto del corpo, il messaggio vero e proprio. Salva quanto modificato. Se serve, modifica ora e giorno di esecuzione, quindi salva tutto quanto per evitare di perdere quanto fatto fino a ora.

Lancia manualmente l’operazione schedulata per verificare che tutto funzioni regolarmente, salvo errori sei a posto e hai trovato il giusto escamotage per risolvere il tuo problema.

Cheers.

 

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version