c# - Windows 任务栏右键菜单中的标题

标签 c# .net winforms taskbar

如何在运行时更改程序任务栏按钮右键单击上下文菜单中的标题?我的意思是这里用红色圈出的文字。

enter image description here

标题似乎是 taken from the assembly title 。我需要在运行时从代码动态更改标题。我有一个 EXE,用户将其“视为”许多不同的应用程序 - 它在运行时读取数据文件,然后大规模自定义其外观,包括窗口标题。我还需要自定义右键菜单中的标题。没有一个标题可以涵盖所有内容。如有必要,我愿意考虑对 Windows API 进行 P/Invoke 调用。

这是一个WinForms .Net 4.5.2程序,截图是Windows 7。

最佳答案

我为您提供了一个解决方案,但不确定它是否适合您

我将做出一些假设来插入我的解决方案

  1. 这是一个使用Visual Studio构建的winforms项目
  2. 您尚未修改原始 Program.cs 文件
  3. 所有程序集属性都位于 AssembyInfo.cs 中

Program.cs 通常看起来像这样

using System;
using System.Windows.Forms;

static class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

处理这个问题的一种方法是将您的应用程序构建为没有 Program.cs类库,我们将其称为 App.dll。然后将 Program.csAssemblyInfo.cs 中的代码(仅相关部分)合并到一个文件中,我们将其命名为 App.cs。您应该使用单独的脚本或通过 App.cs 本身自动生成 App.cs 现在构建引用 App.dll 生成 App.exe 的 App.cs。此 App.exe 的工作方式应该与您当前的可执行文件完全相同。

一旦所有这些都建立起来,您就已经可以看到我们的发展方向了。

现在,当您的 App.exe 启动并读取配置进行更改时,您应该使用不同的 AssemblyTitle 自动生成 App.cs,如下所示

[assembly: AssemblyTitle("MyAssembly")]

并生成 App-Flavor1.exe,并生成该进程并退出 App.exe

关于c# - Windows 任务栏右键菜单中的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34906482/

相关文章:

c# - 如何不在开源项目的 Visual Studio/C# 代码中存储 API key

.net - 有没有人有在 Visual Studio 中创建自定义文本标记的示例?

c# - Visual Studio 中的基本 Winforms 数据绑定(bind)(设计器模式)

.net - 按名称选择特定打印机 VB

c# - 如何在文本更改时更新标签的 Fore.Color ...通过 WPF 中的 C# 代码

c# - 如何在树中找到重叠/冗余节点

c# - WCF 身份验证服务

c# - 如何将通用类型数据列表转换为另一个通用类型数据列表

c# - 是否可以强制仅从已知客户端调用 Web 服务?

C# string.split 方差