【问题标题】:Change the taskbar icon of another process in Windows更改 Windows 中另一个进程的任务栏图标
【发布时间】:2013-04-04 21:35:15
【问题描述】:

我有 2 个在 Windows 7 中运行的应用程序。第一个应用程序是启动第二个应用程序的 C++ 引导程序。我想在运行时以编程方式从第一个应用程序更改 Windows 任务栏(屏幕底部的栏)中第二个应用程序的图标。

这可能吗?

有没有办法创建第二个进程,使其与第一个进程共享一个公共任务栏图标?

我正在尝试为 ROBLOX 游戏创建一个独立的可再发行组件(这里的第二个应用是游戏玩家,我想加载一个特定于游戏的图标,否则用户体验会很混乱)

【问题讨论】:

  • 赋予两个程序相同的图标以混淆用户的概念是一个令人费解的概念。您可以在 Windows 7 中执行某些操作,ITaskBar3::SetOverlayIcon()。
  • ITaskbarList3 无法操作其他进程的任务栏按钮。任何指定的 HWND 都必须属于正在访问 ITaskBarList3 的调用进程。文档中对此进行了说明。
  • 您控制这两个应用程序的代码吗?你能让引导程序向第二个应用程序传递一个标志,告诉第二个应用程序使用哪个图标吗?

标签: winforms winapi windows-shell


【解决方案1】:

您所要求的通常是不可能的。只有拥有任务栏按钮的进程才能操作它。一个进程不能操纵另一个进程的任务栏按钮。您的引导程序可能需要注入在第二个进程内部运行的代码,例如使用 CreateRemoteThread()

【讨论】:

  • 呃,这听起来太可怕了。不过感谢您的提示。
  • 一般规则似乎不正确。可以从另一个进程更改进程标题,这也会影响进程任务栏按钮。看stackoverflow.com/questions/1016823/…
  • 这改变了拥有任务栏按钮的窗口的标题,这间接地改变了任务栏按钮的文本。但这就是它所能做的。如果你真的想操作另一个进程的任务栏按钮,尤其是它的图标(这个问题正在询问),那么请查看今年早些时候的another answer I posted,其中包含指向直接操作任务栏的文章的链接。跨度>
猜你喜欢
  • 2010-11-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 2012-02-12
  • 2011-02-12
相关资源
最近更新 更多