C# - Windows 7任务栏显示的是AssemblyTitle而不是Form.Text

4

我有一个没有标题栏的Windows Forms应用程序,在Windows 7上,任务栏显示的是AssemblyTitle的值,而不是窗体的Text属性的值。我该如何动态更改这个值呢?

谢谢!


1
不要重复。将表单的ControlBox属性设置为false,并将Text设置为空字符串。 - Hans Passant
ControlBox属性为false,文本不应为空。问题在于Windows 7使用AssemblyTitle属性而不是主窗体的Text属性。我需要能够更改任务栏中的文本以使用动态值,而不是从AssemblyTitle获取的值。 - g01d
我猜你是指右键单击任务栏时应用程序的名称? - tia
正确的,我指的是右键点击后在任务栏中显示的文本。 - g01d
1个回答

5
根据您的评论,我认为您正在指的是程序的“跳转列表”,其中包括程序标题(如果单击它,则会启动程序的另一个实例)。我的理解是,您所看到的是所有应用程序的默认行为,而与您的表单上的标题栏的可见性无关。
我试图在我编写的程序中更改这个问题,并得出结论(至少在托管代码中)无法完成 - Win 7获取可执行文件中的FileDescription的值(AssemblyTitle在Win Forms应用程序中是其代理)。据我所知,程序集属性无法针对正在运行的程序集进行更改,即使您能够这样做,我也不确定Windows是否会注意到更改并更新跳转列表。
有一个用于Win 7 API的托管包装器(Windows API Code Pack),尽管有一个用于操作Jump Lists的类,但我在其中找不到任何内容来覆盖它们的特定方面的默认行为。

编辑: 仔细查看本地API(而非托管的Code Pack包装器),我没有找到任何功能,但我发现了这个MSDN博客条目。在第二个图表下面(它将应用程序标题定义为“任务栏任务”部分的一部分)和Windows SDK引用之后,有一个开发人员可以执行的活动列表,其中包括以下内容:

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

因此,看起来这是不可能的 - Jump List的这个部分完全由操作系统控制。


感谢您报告所发现的问题。这是令人失望的消息...我希望不必使用Windows API代码包,而且似乎它也不一定会有所帮助。 - g01d

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