【发布时间】: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