6

我的程序需要在用户请求时打开一系列信息窗口,并希望在 Windows 7 任务栏上实现某种自定义分组。

所需功能:我的所有信息窗口都应该组合在一起(如果在用户系统上启用了分组功能),但我的主窗口不应该与信息窗口组合在一起。

我无法为我的信息窗口生成新进程。

我的思考过程是,可能有一种方法可以修改信息窗口的窗口句柄,以使任务栏将其单独分组,但老实说,我什至不知道从哪里开始。

编辑

我发现了一些新信息。我可以按照SHGetPropertyStoreForWindow这里的说明做一些事情:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd378459 (v=vs.85).aspx#where

...作为任何应用程序正在运行的窗口的属性。这可以通过以下两种方式之一进行设置: 如果一个进程拥有的不同窗口需要不同的 AppUserModelID 来控制任务栏分组,请使用 SHGetPropertyStoreForWindow 检索窗口的属性存储并将 AppUserModelID 设置为窗口属性。

4

2 回答 2

2

应用程序用户模型 ID说:

“如果一个进程拥有的不同窗口需要不同的 AppUserModelID 来控制任务栏分组,请使用SHGetPropertyStoreForWindow检索窗口的属性存储并将 AppUserModelID 设置为窗口属性。”

于 2012-08-03T03:01:03.573 回答
0

我通过使用适用于 .NET 的 Windows API 代码包和以下代码解决了这个问题:

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(window, guid);

分配有相同 id 的窗口将被组合在一起 - 具有唯一 id 的窗口将有一个单独的任务栏图标。

于 2012-08-03T03:46:21.630 回答