2015-08-02 13 views
8

Sto utilizzando questo codice per inviare notifiche dallo script PowerShell. Lo stesso PowerShell viene lanciato dall'applicazione Java (persistente).ToastNotifiche inviate da PowerShell scompaiono dal Centro operativo

[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null 
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] > $null 
[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null 
$xml = New-Object Windows.Data.Xml.Dom.XmlDocument 
$template = "<toast><visual><binding template=`"ToastText02`"><text id=`"1`">Title</text><text id=`"2`">Test results</text></binding></visual></toast>" 
$xml.LoadXml($template) 
$toast = New-Object Windows.UI.Notifications.ToastNotification $xml 
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("sbt").Show($toast) 

Si aprono sullo schermo e sono visibili nel Centro operativo per mentre spariscono rapidamente. Le notifiche inviate dall'app XAML con lo stesso codice rimangono lì per un po 'di tempo. C'è un modo per cambiare il comportamento delle notifiche inviate tramite script?

+0

Sei sicuro che "sbt" è il corretto 'applicationId'? –

+0

Bene, visualizza le notifiche e per qualche motivo 'CreateToastNotifier' non può essere chiamato senza parametri. – synapse

+0

Sto pensando che, poiché l'attività di PowerShell probabilmente si chiude immediatamente dopo aver mostrato la notifica, il Centro operativo lo esamina e pensa che "il processo non è più in esecuzione = adatto alla scadenza". Considerando che se si utilizza l'applicazione Java "applicationId", è possibile che la notifica sia ancora pertinente –

risposta

4

È necessario impostare una chiave di registro per ogni AppID di cui si desidera mantenere le notifiche nel Centro operativo.

Per esempio, se si desidera che le notifiche irssi a persistere, aggiungere la chiave: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\irssi con un DWORD denominato ShowInActionCenter con valore 1.

Grazie a "Passing By" per la soluzione nei commenti this article's e Mattias Fors per la creazione dell'articolo.

Aggiornamento: è inoltre possibile attivare o disattivare questa opzione nelle "Notifiche & azioni" Impostazioni per ogni app.