【问题标题】:C# - Windows 7 taskbar shows AssemblyTitle instead of Form.TextC# - Windows 7 任务栏显示 AssemblyTitle 而不是 Form.Text
【发布时间】:2011-04-13 07:25:33
【问题描述】:

我有一个不包含标题栏的 Windows 窗体应用程序,在 Windows 7 上,任务栏显示来自 AssemblyTitle 的值,而不是来自窗体的 Text 属性的值。如何动态更改此值?

谢谢!

【问题讨论】:

  • 无复制。将表单的 ControlBox 属性设置为 false,将 Text 设置为 ""。
  • ControlBox 属性为 false,文本不能为空。问题是 Windows 7 使用 AssemblyTitle 属性,而不是主窗体的 Text 属性。我需要能够更改任务栏中的文本以使用动态值,而不是使用来自 AssemblyTitle 的值。
  • 我猜你是指右键单击任务栏时应用程序的名称?
  • 正确,我指的是右键任务栏显示的文字。

标签: c# windows winforms windows-7


【解决方案1】:

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

我试图在我正在编写的程序上更改它并得出结论(至少在托管代码中)它无法完成 - Win 7 采用可执行文件中 FileDescription 的值(AssemblyTitle 是这个的代理在 Win Forms 应用程序中)并使用它。据我所知,无法更改正在运行的程序集的程序集属性,我不确定 Windows 是否会注意到更改并更新跳转列表,即使您可以这样做。

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

编辑: 更仔细地查看本机 API(与托管代码包包装器相反),我找不到任何函数,但我确实发现了这个 MSDN blog entry。在第二张图(将应用程序标题定义为“任务栏任务”部分的一部分)和 Windows SDK 引用下方,有一个开发人员可以执行的活动列表,其中包括以下内容:

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

所以看起来这是不可能的 - 跳转列表的这一部分完全由操作系统控制。

【讨论】:

  • 感谢您报告您的发现。这是一个令人失望的消息...我希望不必使用 windows api 代码包,但听起来它不一定有帮助。
猜你喜欢
  • 2013-02-05
  • 2011-03-24
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多