C# 如何正确设置 Windows 8 任务管理器的程序集标题?

Posted

技术标签:

【中文标题】C# 如何正确设置 Windows 8 任务管理器的程序集标题?【英文标题】:C# How to correctly set assembly title for Windows 8 Task Manager? 【发布时间】:2013-09-05 23:03:50 【问题描述】:

我已将我的 C# Winforms 可执行文件的标题和程序集信息设置如下:

[assembly: AssemblyTitle("Widgets Galore")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Widgets Inc")]
[assembly: AssemblyProduct("Widgets Galore")]
[assembly: AssemblyCopyright("Copyright © Widgets Inc 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

...

MainForm.Text = "Widgets Galore by Widgets Incorporated";

...

// Compiles to: widgets.app.exe

在 Windows 7 任务管理器中,它正确地将进程显示为主窗体标题:

"Widgets Galore by Widgets Incorporated"

但是在 Windows 8 任务管理器中,它错误地显示了可执行文件的名称,并带有一个子项:

"widgets.app"
    |--"Widgets Galore by Widgets Incorporated".

我在 Windows 8 任务管理器中看到许多其他应用程序以友好名称列出,并且希望看到我的应用程序也这样做。

如何强制 W8 为我的应用程序起一个好记的名称?

-布伦丹

【问题讨论】:

它使用 [AssemblyTitle] 属性。很难调和你的问题。首先使用一个虚拟的 Winforms 项目来隔离它。接下来寻找自定义 .res 文件的问题。 【参考方案1】:

通过反复试验,我发现如果您的文件没有经过数字签名,Windows 8 任务管理器会显示 exe 名称而不管 [AssemblyTitle]。我认为这是一种安全措施。解决方案:数字签名。

【讨论】:

以上是关于C# 如何正确设置 Windows 8 任务管理器的程序集标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中应用 Windows 任务栏更改而不重新启动资源管理器?

像任务管理器(Windows 8)一样杀死进程,因为访问被拒绝

从任务管理器中隐藏 C# 程序?

如何使用 C# 将 Windows 系统时钟设置为正确的本地时间?

windows 10打开任务管理器怎么选择关系设置

使用 win32 API 功能启用/禁用任务管理器,而不是通过 Windows 注册表