如何在运行时更改程序任务栏按钮右键单击上下文菜单中的标题?我的意思是这里用红色圈出的文字。
标题似乎是 taken from the assembly title 。我需要在运行时从代码动态更改标题。我有一个 EXE,用户将其“视为”许多不同的应用程序 - 它在运行时读取数据文件,然后大规模自定义其外观,包括窗口标题。我还需要自定义右键菜单中的标题。没有一个标题可以涵盖所有内容。如有必要,我愿意考虑对 Windows API 进行 P/Invoke 调用。
这是一个WinForms .Net 4.5.2程序,截图是Windows 7。
最佳答案
我为您提供了一个解决方案,但不确定它是否适合您
我将做出一些假设来插入我的解决方案
- 这是一个使用Visual Studio构建的winforms项目
- 您尚未修改原始
Program.cs
文件 - 所有程序集属性都位于 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.cs
和 AssemblyInfo.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/