2010-09-16 81 views
4

我有一个不包含标题栏的Windows窗体应用程序,并且在Windows 7上,任务栏显示来自AssemblyTitle的值,而不是表单的文本中的值属性。我如何动态改变这个值?C# - Windows 7任务栏显示AssemblyTitle而不是Form.Text

谢谢!

+1

没有repro。将窗体的ControlBox属性设置为false并将文本设置为“”。 – 2010-09-16 16:02:08

+0

ControlBox属性为false,文本不能为空。问题在于Windows 7使用AssemblyTitle属性,而不是主窗体的Text属性。我需要能够更改任务栏中的文本以使用动态值,而不是*来自AssemblyTitle的值。 – g01d 2010-09-16 16:05:36

+0

我想你的意思是当你右键点击任务栏时应用程序的名称? – tia 2010-09-16 17:40:41

回答

5

从你的意见中,我认为你指的是该程序的“跳转列表”,其中包括一个程序标题(如果你点击它,该程序的另一个实例启动)。我的理解是,您看到的是所有应用程序的默认行为,无论您的表单上的标题栏的可见性如何。

我试图改变这一个程序我写,来到这(至少在托管代码),它不能做的结论 - Win 7的花费中的可执行FileDescription的值(AssemblyTitle是一个代理这在Win Forms应用程序中)并使用它。据我所知,程序集属性不能改变正在运行的程序集,而且我不确定Windows是否会发现更改并更新跳转列表,即使您可以这样做。

有一个Win 7 API的管理包装器(Windows API Code Pack),虽然有一个用于操作跳转列表的类,但我没有发现任何内容来覆盖它们的这个特定方面的默认行为。

编辑: 更仔细地进入本地API(而不是托管代码包的包装),我找不到任何功能,但我没有发现这个MSDN blog entry。只在第二个图(其定义了应用程序的标题为“任务栏任务”部分的一部分)和Windows SDK报价下,存在的活动的开发人员可以执行列表,它包括以下内容:

作为开发人员我们无法控制任务栏任务 。

因此,看起来这是不可能的 - 跳转列表的这一部分由操作系统独占控制。

+0

谢谢你报告你找到的东西。这是令人失望的消息......我希望不必使用windows api代码包,听起来好像不一定会有帮助。 – g01d 2010-09-17 16:48:48