在运行时更改已部署应用程序的任务栏图标

2023-12-02

我想更改任务栏图标以在收到新邮件时通知用户,就像 Outlook 收到新邮件时通知用户一样。

我已经在网上搜索解决方案,这都是关于更改窗口图标,如下所示:

Uri iconUri = new Uri("Resources/envelop.ico", UriKind.Relative);
this.Icon = BitmapFrame.Create(iconUri);

它在 Visual Studio 上运行良好,但我发现它不会更改已部署应用程序上的任务栏,因为它是只读变量。更糟糕的是,它只更改了我无论如何都不想更改的左上角附加图标。

那么有没有办法做到呢? Outlook 做到了,Chrome 也做到了,所以一定有办法。

UPDATE

为了在我部署的应用程序上强制刷新图标,我必须固定/取消固定我的图标任务栏,不幸的是,这只是一个用户命令,所以我无法在 wpf 中以编程方式执行此操作,而不利用一些太不稳定的肮脏方式。

实际上,我正在尝试找到一种刷新图标缓存的方法,而无需为每个 Windows 操作系统或版本执行此操作。


这里有一个小工作演示做好工作!

添加图标:

enter image description here enter image description here

选择 2 个图标(例如 Outlook Standard 和 Outlook Mail Received):

将其添加到您的后面的代码中MainWindow

public partial class MainWindow : Window
{
    private int _imgId;

    public MainWindow()
    {
        InitializeComponent();
        this.Loaded += MainWindow_Loaded;
    }

    private void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        //Start timer to periodically change the App Icon:
        new System.Threading.Thread(() =>
        {
            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Interval = 100;
            timer.AutoReset = true;
            timer.Elapsed += Timer_Elapsed;
            timer.Start();
        }).Start();
    }

    private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        try
        {      
            //Change AppIcon on UI-Thread         
            Dispatcher.Invoke(() =>
            {
                /* CHANGE YOUR ICONS HERE !!! */
                BitmapSource ms_icon = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(Properties.Resources.Microsoft_logo.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                BitmapSource so_icon = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(Properties.Resources.images.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                if (_imgId == 0)
                {
                    this.Icon = so_icon;
                    _imgId = 1;
                }
                else
                {
                    this.Icon = ms_icon;
                    _imgId = 0;
                }
            });
        }
        catch (Exception ex)
        {
            System.Diagnostics.Trace.WriteLine(ex.Message);               
        }            
    }
}

将产生以下输出(每 100 毫秒切换一次):

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在运行时更改已部署应用程序的任务栏图标 的相关文章

  • 数据结构的优化存储以实现快速查找和持久化

    Scenario 我有以下方法 public void AddItemSecurity int itemId int userIds public int GetValidItemIds int userId 最初我正在考虑表单上的存储 i
  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • Windows CE 6.0 和运行时链接到调试 DLL /MDd

    我在 x86 PC 上使用 Windows CE 6 0 R3 我已经为该平台构建了 NK bin 和 SDK 但我有一些问题需要了解如何使用 MTd 调试 DLL 构建控制台应用程序 如果我尝试构建这个 main c with MDd i
  • 使用 Process.Start() 打开文件夹时访问被拒绝异常

    我有一个 C 中的 winforms 应用程序 我必须在其中打开某个文件夹 我用 System Diagnostics Process Start pathToFolder 这会导致以下异常 System ComponentModel Wi
  • 对无符号 8 位整数进行左移操作 [重复]

    这个问题在这里已经有答案了 我试图理解 C C 中的移位运算符 但它们给我带来了困难 我有一个无符号 8 位整数 初始化为一个值 例如 1 uint8 t x 1 根据我的理解 它在内存中的表示方式如下 0 0 0 0 0 0 0 1 现在
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • memccpy 返回比 src 起始地址更低的内存地址

    我有一个学校项目 我必须重新编码memccpy 功能 我使用 2 个程序来检查我的代码是否正常工作 第一个是只有一个主程序的小程序 第二个程序是另一个学生开发的 可以找到here https github com yyang42 mouli
  • 如何实现可变虚拟成员函数

    所以我有这个功能 virtual void CallRemoteFunction const char pServerGameObjectId const char pFunctionName OVariant arg1 OVariant
  • Docker 不遵循构建目录中的符号链接

    我正在对一个应用程序进行 Docker 化 其中涉及通过 Clang 将二进制文件与其他 C 文件链接 我们维护二进制文件的符号链接版本 因为它们在整个代码库中使用 我的 Docker 构建目录包含整个代码库 包括源文件以及这些源文件的符号
  • 使用 C# 和 .NET Core 在 AWS Cognito 用户池中进行用户管理

    如何使用 C 和 NET Core 3 x 管理 AWS Cognito 用户池中的用户 在文档中找不到有关它的任何内容 Attilio Gelosa 的原创文章 我写这篇文章是希望对其他人有帮助 我必须阅读一页又一页的文档 并从 AWS
  • 在 OpenGL 中使用不同的着色器程序?

    我必须在 OpenGL 中针对不同的对象使用两个不同的着色器程序 我发现我必须使用glUseProgram 在不同的着色器程序之间切换 但对此没有太多信息 鉴于我有两个用于不同对象的不同着色器程序 如何为每个着色器程序生成和绑定 VAO 和
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 使用 Node.js 访问用 C++ 编写的 SDK

    我有一个用 C 语言编写的 SDK 可以与我的扫描仪设备进行通信 我需要开发一个可以访问扫描仪设备的电子应用程序 我知道有很多库可用于扫描仪 但我想使用这个 SDK 因为它允许我访问设备的完整功能 而且它是由设备制造商提供的 那么 有没有什
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • 在标准 C 中将 int 转换为 string

    我是 C 新手 我正在寻找一个可以调用函数进行转换的示例int串起来 我发现itoa但这不是标准 C 的一部分 我还发现sprintf str d aInt 但问题是我不知道所需的 str 的大小 因此 我如何传递输出字符串的正确大小 有多
  • 使texture2D在运行时/脚本Unity3D中可读[重复]

    这个问题在这里已经有答案了 我有一个插件 可以让我访问 Android 手机图库中的图片 这给了我一个Texture2D类型的纹理 然后我想使用 GetPixels 函数对其进行编辑 但默认情况下它未设置为可读 如何使纹理可读 以便我可以在
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许

随机推荐

  • socket.io 房间或命名空间?

    我正在研究 nodejs socket io 进行实时聊天 我需要一些关于实施房间的建议 使用命名空间或使用房间功能来完全隔离聊天组 哪个更好 房间和命名空间之间真正的技术区别是什么 资源使用情况有区别吗 这就是命名空间和房间所具有的共同点
  • 强制 CMake 查找 x64 位库而不是 x32

    因此 我一直在 stackoverflow 和其他一些论坛中查找如何强制 CMake 查找 x64 库而不是 x32 但它并没有多大帮助 当我做 find package Boost 1 67 0 COMPONENTS atomic REQ
  • 如何在 macOS 终端中批量重命名文件?

    我有一个包含一系列文件的文件夹 名为 prefix 1234 567 png prefix abcd efg png 我想批量删除一个下划线和中间内容 因此输出将是 prefix 567 png prefix efg png 相关但不完全解
  • 我可以将 Zend PDT (eclipse) 链接到浏览器操作吗?

    是否可以在 Eclipse 中配置 Zend PDT 调试器 以与 Eclipse 的 Java 调试器类似的方式从浏览器操作中命中断点 IE 设置断点 启动调试器 浏览站点 然后在遇到断点时进入断点 我可以调试单个脚本和网页 但是我正在尝
  • 如何解析网页

    我试图从 EnviroCanada 天气页面中提取以下内容 我试图按照以下方式获取每小时的数据 时间 大腿 特洛 湿度 7 00 23 23 22 9 22 9 30 提取的 HTML 页面 tr td class text center
  • 如何在 XSLT 中保留元素的开始标记内的空格

    为了避免将敏感信息提交到 SCM 存储库 我编写了一个 XSL 样式表 用于从 ASP NET 中删除连接字符串密码Web config文件 它实现了我删除密码的目标 但它也会影响元素开始标签内的空白 如果可能的话 我想保留这个空白 例如
  • 如何通过 C# 代码更改已过期的 sql server 密码?

    当您使用 SqlConnection 连接到 MS Sql Server 时 如果密码已过期 您将收到 SqlException 编号 18487 或 18488 如何在连接尝试期间更改代码中的用户密码 使用静态SqlConnection
  • 如何允许其他人访问由 Google Apps 脚本制作的网络应用程序?

    我从 Google Apps 脚本部署了一个网络应用程序 但其他人似乎无法运行它 当我登录谷歌时 它运行得很好 我不断得到 要求分享 电子邮件 即使我将源脚本设置为 在网络上公开 执行应用程序 被设定为 用户访问网络应用程序 该应用程序的链
  • Azure Pipelines 第二个作业找不到第一个作业的结果

    我正在开始使用 azure pipelines yml 我想在同一阶段有两份工作 一个用于构建解决方案 另一个用于运行单元测试 问题是第二个作业执行了脚本步骤 但没有找到文件夹Release前一个应该已经创建 trigger master
  • PHP simplexml_load_file 捕获 403

    我正在使用以下 PHP xml simplexml load file request url or die url not loading I use status xml gt Response gt Status gt code 检查
  • Laravel RESTful 控制器参数

    我使用 Laravel 4 和 Angular JS 来使用 RESTful 控制器处理 http 请求 我有一个 RESTful 控制器 UserController具有以下功能 public function getIndex is R
  • 怎样清除手指上的油漆?

    我是 android 新手 我在 Api Demo 中的 FingerPaint java 的帮助下使用手指准备了一个绘画视图 它工作正常 同一个视图包含一个按钮 清除 如果我们单击按钮绘画将被清除 空屏幕和一个按钮 我的问题是如何清除绘画
  • 如何避免Java中的ResultSet已关闭异常?

    一旦我的代码到达我的while rs next 循环它产生ResultSet是关闭异常 是什么原因导致此异常以及如何纠正它 EDIT 我注意到我的代码中正在嵌套while rs next 与另一个循环 rs2 next 两个结果集都来自同一
  • iOS Safari Mobile 不会仅触发一次 pageshow

    iOS Safari 在以下情况下似乎不会触发 pageshow 事件 假设我有 3 页 页面 A 在 pageshow 事件中有一些代码 Page B Page C 用户导航自A gt B 按后退按钮 页面显示触发正常 然后 用户导航到另
  • 如何在 Spring Boot 中获取 DispatcherServeletInitializer 功能

    我们正在寻求将我们的项目迁移到 Spring Boot 但目前尚不清楚如何复制其功能AbstractAnnotationConfigDispatcherServletInitializer在 Spring Boot 中 public cla
  • 如何使用 PHP 更新/编辑 JSON 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 这是我的JSON activity code 1 activity name FOOTBALL activity code 2 activity name CRICKET 我需要更新
  • 为什么 JLabels 上的图像图标在运行时会像素化,但在设计模式下却不会?

    左 设计模式 右 运行 每次我运行程序时 图像图标都会变得像素化或模糊 而且我在任何地方都找不到同样的问题 这些图像在设计模式下看起来不错 有谁知道这个问题的解决方案 我正在使用这行代码来获取图像 private Image img hom
  • 如何在Matlab中从矩阵中提取非垂直列

    我有矩阵 A 和向量 b 它指定要为矩阵的每个相应行提取的元素的列索引 例如 A 1 2 3 4 5 6 7 8 9 b 1 3 2 我想要c 1 6 8 关于输出 如何实现这一目标 I tried A b 但它不能按我的需要工作 可能有一
  • Rust 的泛型 FromStr 对象可以做什么?

    Rust s str类有一个parse方法返回一个FromStr目的 parse是模板化的 因此正在解析的类型str可以手动指定 例如 3 parse
  • 在运行时更改已部署应用程序的任务栏图标

    我想更改任务栏图标以在收到新邮件时通知用户 就像 Outlook 收到新邮件时通知用户一样 我已经在网上搜索解决方案 这都是关于更改窗口图标 如下所示 Uri iconUri new Uri Resources envelop ico Ur