2017-10-18 10 views
3

私はトースト通知のために.NETという参照を付けたPowerShellコードを持っています。ウィンドウを得たときに10秋のクリエーター、それがなくなって(FCU)更新、しかし、同じコードが動作していない:
コメントで述べたようにWindowsの秋のクリエイターのアップデートでトースト通知が動作しない

$app = "HTML Report" 
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] 

$Template = [Windows.UI.Notifications.ToastTemplateType]::ToastImageAndText01 

#Gets the Template XML so we can manipulate the values 
[xml]$ToastTemplate = ([Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent($Template).GetXml()) 

[xml]$ToastTemplate = @" 
<toast launch="app-defined-string"> 
    <visual> 
    <binding template="ToastGeneric"> 
     <text>DNS Alert...</text> 
     <text>We noticed that you are near Wasaki. Thomas left a 5 star rating after his last visit, do you want to try it?</text> 
    </binding> 
    </visual> 
    <actions> 
    <action activationType="background" content="Remind me later" arguments="later"/> 
    </actions> 
</toast> 
"@ 

$ToastXml = New-Object -TypeName Windows.Data.Xml.Dom.XmlDocument 
$ToastXml.LoadXml($ToastTemplate.OuterXml) 

$notify = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($app) 

$notify.Show($ToastXml) 
+2

[burnttoastモジュール](https://github.com/Windos/BurntToast)には、1709についてのメモとAppIDに関する変更があります。ここには[GitHubコミット](https:// github。com/Windos/BurntToast/commit/674b80c9fbbd689a729c1fd2c3dedd386843a5a4)を変更して、うまくいけばそれが役に立ちます。 – BenH

+0

私は自分のコードを使用しています、彼は彼にコードを話しました – Aso

答えて

8

、これは最近BurntToastモジュールで対処されなければならなかったものです。この変更に伴うblog postもありますが、ここではこの回答の完全性について要約しておきます。

これはToast Notification Managerに提供している「アプリケーションユーザーモデルID」(以降、AppIdという)になります。

厳密に言えば、このAppIdは、スタートメニューにあるショートカットに埋め込まれたAppIdに一致する必要があります。これは、常にしかし、以前のバージョンのWindowsで古いのAppIDを許さ種類の抜け穴があった、ケースとなっている10

それはスクリプトからトーストを作成している人たちのもののために吸うな限り、その抜け穴をされています閉鎖され、AppIdsはFall Creators Updateの時点で「本物」になる必要があります。

あなたが実行することにより、有効なAppIdsのリストを見つけることができます。

{1AC14E77-02E7-4E5D-B744:

Get-StartApps 

は私がたpowershell.exeのための1つをデフォルトにすることにしましたしました-2EB1AE5198B7} \ WindowsPowerShell \ v1.0をするの\たpowershell.exe

彼らのトーストが実際displaになるように、あなたはまだ(PowerShellのを含む)これらのいくつかを設定する必要があることに留意すべきです彼らがタイムアウトすると、アクションセンターでyed。あなたは、「設定」を介してこれを行うことができ

設定 - >システム - >通知&アクション - > PowerShellの(スクロールダウンして、あなたはそれが表示されるようにするための少なくとも一つのトーストを送ってきたのに必要な必要があります) - >アクションセンターに通知を表示します。

PowerShell notification settings

あなたはまた、PowerShellの例えばHKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings

の下に、レジストリを経由してこれを行うことができ、あなたは(1に設定)DWORDを追加する下ShowInActionCenterと呼ば:

HKCU :\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Notifications \ Settings {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7} \ WindowsPowerShell \ v1.0 \ powershell.exe \

独自のAppIdを作成する場合は、shortcut with an AppIdを作成する方法、またはAppxManifest.xmlでダミーのUWPアプリを作成する方法を調べる必要があります。私はまだ、これらのうちの1つを実行するユーザーフレンドリーな方法に取り組んでいます。

+0

Mr. Windosありがとう。あなたの答えに感謝します。まだ私のために働いていない。私の 'Notifications&actions'の 'PowerShell'は存在しません。私もそれらのレジストリ{キー、値}を作成しました。デスクトップで自分のコードを確認してください。 – Aso

+1

@Aso、あなたのコードの最初の行を '$ app = '{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7} \ WindowsPowerShell \ v1.0 \ powershell.exe'に変更すると、それは私のために働いています。 – Windos

+0

固定コードを投稿できますか? – Aso

関連する問題