gpt4 book ai didi

c# - 使用桌面应用程序在 Windows 10 上通知

转载 作者:可可西里 更新时间:2023-11-01 13:46:46 26 4
gpt4 key购买 nike

我在 C# 中获得了一个带有 NotifyIcon 的 Windows 窗体项目。我正在使用以下代码显示气球通知:

notifyIcon.ShowBalloonTip(1000, "title", "text", ToolTipIcon.Info);

这在 Windows 8.1 之前一直运行良好。现在我已经安装了 Windows 10 预览版,气球通知不再显示。

我猜想所有的通知都被移动到 Windows 8 风格的 toast 通知,气球通知被完全删除(因为我还没有看到一个气球通知和更多的 toast 通知),但是我还没有找到官方消息来源。

问题是我的应用程序只是一个 .exe 文件,因此它没有安装程序或快捷方式。根据this页面需要创建快捷方式的安装程序才能使 Toast 通知正常工作。

如何在没有任何快捷方式或安装程序的情况下在 Windows 10 中显示通知(我不关心它是气球通知还是 toast 通知)?

最佳答案

我使用此线程来帮助编写此代码 - 我正在分享我的成功。

警告我是 C# 的新手,所以我的代码可能很糟糕 - 但它确实有效并且非常简单,这比我找到的大多数解决方案所能说的要多

此外,我也很难读取 xml 文档。我正在与 System.xml(我认为)和 Windows.Data.Dom.Xml(也不完全确定)作斗争。最后,我决定为我的示例文件制作硬编码字符串,并使用 switch 语句在它们之间切换。我发现很多人都在寻找我提出的堆栈溢出解决方案。似乎将 toast 通知系统与控制台或后台应用程序一起使用会非常有用,并且围绕带有 Windows 应用程序的 toast 通知系统的文档都表明它需要与应用程序一起使用。操作中心对于通知 vs NotificationTray/NotifyIcon 路由非常有用。我还没有在网络上的其他任何地方找到完整的解决方案。这是示例代码。

/*
At first you need to declare that your program will be using winRT libraries:
1. Right click on your yourProject, select Unload Project
2. Right click on your youProject(unavailable) and click Edit yourProject.csproj
3. Add a new property group:<TargetPlatformVersion>8.0</TargetPlatformVersion>
4. Reload project
5. Add referece Windows from Windows > Core
*/
using System;
using Windows.Data.Xml.Dom;
using Windows.Storage;
using Windows.Storage.Streams;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Notifications;

namespace ConsoleApplication6
{
public class NewToastNotification
{
public NewToastNotification(string input, int type)
{
string NotificationTextThing = input;
string Toast = "";
switch (type)
{
case 1:
{
//Basic Toast
Toast = "<toast><visual><binding template=\"ToastImageAndText01\"><text id = \"1\" >";
Toast += NotificationTextThing;
Toast += "</text></binding></visual></toast>";
break;
}
default:
{
Toast = "<toast><visual><binding template=\"ToastImageAndText01\"><text id = \"1\" >";
Toast += "Default Text String";
Toast += "</text></binding></visual></toast>";
break;
}
}
XmlDocument tileXml = new XmlDocument();
tileXml.LoadXml(Toast);
var toast = new ToastNotification(tileXml);
ToastNotificationManager.CreateToastNotifier("New Toast Thing").Show(toast);
}
}

class Program
{
static void Main(string[] args)
{
NewToastNotification Window = new NewToastNotification("Yes",1);


}
}
}

关于c# - 使用桌面应用程序在 Windows 10 上通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26192333/

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