【问题标题】:Changing taskbar button color on Windows在 Windows 上更改任务栏按钮颜色
【发布时间】:2013-02-02 15:42:47
【问题描述】:

同一应用程序的多个实例同时运行,并且由于每个实例都有多个窗口,因此用户在它们之间导航并不容易。我通过将不同应用程序实例的 标题栏颜色 设置为不同的值来帮助用户。例如,第一个启动的应用实例的所有窗口都会有红色的标题栏,第二个实例的所有窗口都会有一个绿色的标题栏,等等。

将应用实例的任务栏按钮颜色设置为我用于标题栏的颜色也会很有用。这可能吗?如果不是,那么我会对具有类似差异化效果的解决方案感到满意,例如设置任务栏按钮上的文本颜色、为其添加覆盖图标等。

该解决方案应该适用于 Windows XP 和更高版本的 Windows。语言可以是 C/C++、C# 或 Delphi。非常感谢您!

【问题讨论】:

  • 这几乎是不可能的,除了两个例外:(1)您可以绘制/管理自己的标题栏而不是使用默认标题栏,但它很少值得,恕我直言。 (2) 在 Windows 7 中,您可以轻松地在任务栏按钮中使用叠加图标。
  • @AndreasRejbrand 我可以更改标题栏的颜色,我需要更改任务栏按钮的颜色。我找到了 ITaskbarList3,但它至少需要 Windows 7,我想让该解决方案在 Windows XP 上运行。
  • @kol:是的,但你不需要去替换 explorer.exe。您可以简单地创建自己的类似任务栏的程序,并隐藏标准程序。
  • @AndreasRejbrand 好的,谢谢。我不会那样做 :) 如果真的不可能更改任务栏按钮的颜色,那么我会尝试在运行时为应用程序图标添加一个细长的彩色框架。
  • @kol 但您仍然可以添加自己的调色板“所有 MyApp 实例”,然后提供不同的颜色或其他颜色。那只是可选的附加组件,而不是 OS UI 的替代品。例如,您可以制作浮动调色板窗口。或者插件到一些 shell 扩展器,比如 TrueLaunchBar - 不是替换 Windows 的一个,而是为你的应用添加第二个。

标签: c# c++ windows delphi winapi


【解决方案1】:

您不能希望获得不同颜色的任务栏按钮。

您可以安装自己的 shell 并完全控制任务栏,但您不能指望您的客户这样做。

您不能期望在 Windows 任务栏的顶部进行绘画。任务栏是动画的。你将如何跟上它?你怎么知道按钮在哪里?我不相信有一个公共 API 会告诉你这一点。我认为你必须排除这个想法。

有一个 API 允许您更改任务栏按钮的颜色。它是 Windows 7 中添加的任务栏进度 API。您可以使用它使任务栏按钮变为黄色、绿色或红色。我个人不建议这样做,因为用户会认为您正在显示进度。

您可以使用的主要选项是更改窗口标题,以及任务栏按钮中显示的文本。或更改图标。

【讨论】:

    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多