从c#更改正在运行的进程的ApplicationID

时间:2010-03-05 16:19:46

标签: c# windows-7 taskbar

在Windows 7中,我们有ApplicationID的概念,它允许(除其他外)在任务栏中对几个图标进行分组。 如何从c#更改正在运行的进程的ApplicationID?我正在尝试用另一个应用程序制作我的WinForm应用程序的图标组。 我尝试过使用Windows API Code Pack Library,在我的Load事件中粘贴以下代码......但它不起作用。建议?

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

2 个答案:

答案 0 :(得分:2)

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

  

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

     

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

我强调不。

答案 1 :(得分:0)

(某种)显而易见的解决方案是将您想要组合在一起的两个窗口的应用程序ID 设置为相同的ID

示例:

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

Aaaa和两个窗口将组合在一起。