gpt4 book ai didi

C# 控制台 Toast 停止显示通知

转载 作者:可可西里 更新时间:2023-11-01 11:23:42 27 4
gpt4 key购买 nike

大约六个星期前,我开发了一个 C# 控制台应用程序作为生成 Windows 10 toast 通知的概念证明。工作正常。我重新访问该解决方案,发现它可以正确构建和运行,但 toast 通知不再显示。对 SO 进行了深入研究,到目前为止还没有爱。希望社区中的某个人可以为我指明正确的方向,所以这里是:

环境

  • Windows 10,版本 1709
  • .NET 框架 4.6.1
  • Visual Studio 2017,版本 15.7.4

.csproj文件添加

<PropertyGroup>
<TargetPlatformVersion>10.0.1709</TargetPlatformVersion>
</PropertyGroup>

添加引用

  • Windows 数据
  • Windows.UI
  • System.Runtime(来自 .NETFramework\v4.6.1\Facades)

Program.cs

using System;
using System.IO;
using Microsoft.Toolkit.Uwp.Notifications;
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;

class Program
{
private const String APP_ID = "CompanyName.Notifier.ToastName";

static void Main(string[] args)
{
ToastContent content = new ToastContent()
{
Visual = new ToastVisual()
{
BindingGeneric = new ToastBindingGeneric()
{
Children =
{
new AdaptiveText()
{
Text = "Desired text",
HintMaxLines = 1
},

new AdaptiveText()
{
Text = "More desired text"
},
},

HeroImage = new ToastGenericHeroImage()
{
Source = @"C:\Logo.png" // hard-coded path for testing
}
}
},

Duration = ToastDuration.Long

};

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(content.GetContent());

var tstVisual = new ToastNotification(xmlDoc);

ToastNotificationManager.CreateToastNotifier(APP_ID).Show(tstVisual);

}
}

其他想法

我检查了 XML 生成(使用 File.WriteAllText 获得的 XML 检查了 content.GetContent())并且 toast XML 生成正常。似乎有什么东西阻止了 ToastNotificationManager.CreateToastNotifier从显示 toast 通知。感谢您查看此内容。

最佳答案

此问题是由适用于 Windows 10 的 Fall Creators Update(版本 1709)引起的。在 Windows 10 的早期版本中,应用程序用户模型 ID (AppID) 几乎没有限制。但是,对于版本 1709,Microsoft 现在需要 Windows 10 识别的现有 AppID 或通过 AppxManifest 创建的自定义 AppID,或者通过创建 Windows 开始菜单快捷方式并将 AppId 通过 XML 嵌入其中创建。我选择了现有的 Powershell AppId 并将我的代码更改为

私有(private)常量字符串 APP_ID = @"{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe";

当我开始研究如何使用 Powershell toast 时,我偶然发现了答案。这些链接更详细地介绍了问题及其解决方案:

Toast Notification Not Working on Windows Fall Creators Update

GitHub Gist on Using Powershell AppId for Windows Toast

How to Create a Package Manifest Manually

更新

我最终使用 WiX 创建了自定义 Windows 开始菜单快捷方式,并通过 XML 将 AppID 嵌入其中。 (使用另一个应用程序的 AppID 会在 Windows 操作中心中放置不正确的标签,以及其他问题)。我找到了一篇非常好的博客文章,其中详细介绍了关键的 XML 代码以及为快捷方式创建安装程序所需的步骤

Josh King: DIY AppId and WiX, for Tasty Toast

以及有关该主题的原始 WiX 文档

WiX How To: Create a Shortcut on the Start Menu

关于C# 控制台 Toast 停止显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50957475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com