【问题标题】:Caption in Windows taskbar right-click menuWindows 任务栏右键菜单中的标题
【发布时间】:2021-03-22 20:56:53
【问题描述】:

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

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

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

【问题讨论】:

  • @LarsTech 我看了看,它说不可能动态更改程序集名称。我的希望是,有可能以某种方式更改上下文菜单中的菜单标题,可能是通过 Windows API 中的某些内容(它控制任务栏并且不 AFAIK 处理属于 .Net 概念的程序集)
  • 看看这个看看它是否有帮助我确定是否有办法stackoverflow.com/questions/1948014/…
  • @methodman 谢谢,但这是关于点击表单标题,而不是任务栏按钮

标签: c# .net winforms taskbar


【解决方案1】:

我有一个适合你的解决方案,但不确定它是否适合你

我会做一些假设来驱动我的解决方案

  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());
    }
}

处理它的一种方法是将您的应用程序构建为Class Library 没有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

【讨论】:

  • +1 因为它很有创意,而且应该可以工作。不过,在用户机器上运行时动态编译和构建 EXE 对我们来说可能是多余的。如果没有人提出更好的答案,我会接受。
  • 好的,我接受这个答案!听起来它可以工作,没有其他人提供答案......
【解决方案2】:

很久以前,但是...

您可以在“注册表编辑器”中进行修改。

  1. 打开“注册表编辑器”(在 Windows 10 中,单击开始 > 键入 reg,您将在搜索结果中找到它)。
  2. 单击“编辑”菜单>“查找”。将打开一个对话框。
  3. 键入程序的可执行文件的名称(例如“MyAppName.exe”)>“查找下一个”。
  4. 现在您应该看到名称以“FriendlyAppName”结尾的属性,其值为当前标题名称。右键单击它,然后单击“修改”。
  5. 在“值”文本框中键入所需的标题名称。 > 好的。
  6. 如果您的 PC 中有此应用的多个副本,请使用“编辑 > 查找下一个”菜单项查看所有副本并全部修改。

注意不要修改注册表编辑器中的任何其他值,这可能会损害您的 PC 健康。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多