控制Windows 7任务栏对于我的应用程序的分组

6
我的程序需要在用户请求时打开一系列信息窗口,并希望在Windows 7任务栏上实现某种自定义分组。期望的功能是:我的所有信息窗口应该被分组在一起(如果用户系统启用了分组),但我的主窗口不应与信息窗口分组。我不能为我的信息窗口生成新的进程。我的想法是,可以通过某种方式修改信息窗口的窗口句柄,使任务栏将其单独分组,但我真的不知道从哪里开始。编辑:我发现了一些新信息。我可能可以使用“SHGetPropertyStoreForWindow”来完成一些操作,如此处所述:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx#where

为您的窗口分配相同的应用程序ID。 - Raymond Chen
2个回答

2

这对我有用。由于我们是.NET 2.0应用程序,因此我无法使用Windows API Code Pack。 - user326608
1
我的问题是我们的应用程序也可以通过COM启动,当它被启动时,它总是与任务栏分组相结合,并使用与通过COM调用子应用程序的父应用程序相同的图标和任务栏按钮。这是VB.NET代码的解决方法:Public Declare Function SetCurrentProcessExplicitAppUserModelID Lib "Shell32.dll" Alias "SetCurrentProcessExplicitAppUserModelID" ( ByVal AppID As String) As Integer) SetCurrentProcessExplicitAppUserModelID("CompanyName.ProductName.SubProduct.1.0.0.0") - user326608

0

我使用Windows API Code Pack for .NET和以下代码解决了这个问题:

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(window, guid);

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


如何获取窗口句柄以及这个 (gu)id 是什么? - Brackets
@括号:您可以使用任何GUID。具有相同GUID的窗口将被分组在一起 - 具有唯一ID的窗口将具有单独的任务栏图标。 - caesay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接