2010-03-05 58 views
4

在Windows 7中,我们有ApplicationID的概念,它允许(除其他外)在任务栏中分组多个图标。 如何从c#中更改正在运行的进程的ApplicationID?我试图让我的WinForm应用程序的图标组与另一个应用程序。 我试过使用Windows API代码包库,在我的Load事件中粘贴下面的代码...但它没有工作。建议?更改正在运行的进程的ApplicationID从c#

TaskbarManager.Instance.ApplicationId = "MyAppID";  
Process[] p = Process.GetProcessesByName("OtherProcess"); 
TaskbarManager.Instance.SetApplicationIdForSpecificWindow(p[0].MainWindowHandle, "MyAppID"); 

回答

2

我重播了这个。我认为SDK文档是错误的,对SetApplicationIdForSpecificWindow的XML文档()方法是正确的:

的AppId指定一个唯一的应用程序 用户模型ID(的AppID)为 应用程序或个别顶级 窗口,其任务栏按钮将保留 通过 方法类构建的自定义JumpList。

通过为特定的 窗口设置应用程序ID,该窗口不会与其父窗口/应用程序分组 。 相反,它会有它自己的任务栏 按钮。

我强调NOT。

+0

所以你认为有没有办法做到这一点? – Nestor 2010-03-05 21:56:26

0

一个(有些)显而易见的解决方案是将两个窗口'应用程序ID设置为到相同的ID

实施例:

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(win1.MainWindowHandle, "W00T"); 
TaskbarManager.Instance.SetApplicationIdForSpecificWindow(win2.MainWindowHandle, "W00T"); 

Aaaaand两个窗口将被分组在一起。