我的程序需要在用户请求时打开一系列信息窗口,并希望在Windows 7任务栏上实现某种自定义分组。
所需的功能:我的所有信息窗口应该组合在一起(如果在用户系统上启用了分组),但我的主窗口不应与信息窗口分组。
我无法为我的信息窗口生成新进程。
我的思维过程是,有一种方法可以某种方式修改信息窗口的窗口句柄,让任务栏单独分组,但老实说,我甚至不知道从哪里开始。
修改
我找到了一些新信息。我可以使用此处所述的SHGetPropertyStoreForWindow
执行某些操作:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx#where
...作为任何应用程序运行窗口的属性。这可以通过以下两种方式之一设置: 如果一个进程拥有的不同窗口需要不同的AppUserModelID来控制任务栏分组,请使用SHGetPropertyStoreForWindow检索窗口的属性存储并将AppUserModelID设置为窗口属性。
答案 0 :(得分:2)
“如果一个进程拥有的不同窗口需要不同的AppUserModelID来控制任务栏分组,请使用SHGetPropertyStoreForWindow检索窗口的属性存储并将AppUserModelID设置为窗口属性。”
答案 1 :(得分:0)
我使用Windows API Code Pack for .NET和以下代码解决了这个问题:
TaskbarManager.Instance.SetApplicationIdForSpecificWindow(window, guid);
分配了相同ID的窗口将组合在一起 - 具有唯一ID的窗口将具有单独的任务栏图标。