registry - 如何在 "Open With ..."中获得更好的程序标题?

标签 registry

我正在向注册表添加文件关联,以便“打开方式”右键单击菜单将显示我的程序。为简化起见,假设我的程序是“MyTextEditor.exe”,它对.txt 文件进行操作。所以我将这些键和值添加到注册表中:

HKCR\.txt\OpenWithProgids\MyTextEditor.txt  (no value)
HKCR\MyTextEditor.txt                       "Text file"
HKCR\MyTextEditor.txt\shell\open\command    "C:\Program Files (x86)\MyTextEditor\MyTextEditor.exe" "%1"

添加这些键后,如果我右键单击一个 .txt 文件并选择“打开方式”菜单:我会看到如下列表

  • 微软办公软件
  • 我的文本编辑器.exe
  • 记事本
  • Notepad++:一个免费的 (GNU) 源代码编辑器
  • 写字板

但是,我真的很想在菜单中看到一些更好的标题,例如“My Wonderful Text Editor”,而不仅仅是“mytexteditor.exe”。

那么更好看的程序标题如何进入“打开方式”菜单呢?

如果我在注册表中搜索在“打开方式”中看到的程序标题,我只会在各种 MuiCache 条目中找到诸如“Microsoft Office Word”和“Notepad++:免费 (GNU) 源代码编辑器”之类的字符串。我的印象是我不会直接向 MuiCache 添加东西。

(可能是无关紧要的细节,但无论如何我都会提到它们:我正在使用 Inno Setup 作为注册表项,并且该程序是由 launch4j 创建的包装器。)

最佳答案

您唯一需要做的就是提供一个 VERSIONINFO可执行文件中的资源。 Windows 将采用 FileDescription 条目并使用它代替“打开方式”菜单中的可执行文件名称。

关于registry - 如何在 "Open With ..."中获得更好的程序标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8174750/

相关文章:

C# - 文件关联对注册表项 'HKEY_CLASSES_ROOT\' 的访问被拒绝

c# - 读取所有注册表值的快速方法

windows - 注册表拦截的替代方案

c# - 通过 C# 和 WMI 的 RegistryTreeChangeEvent

c++ - 当注册表中不存在 CLSID 时如何查找 DLL

windows - 如何使批处理文件执行reg文件

windows - 编译已安装软件列表时卸载注册表项中的重复条目

c - 用 C 语言枚举注册表项及其数据

c++ - 将 LPBYTE 转换为字符串

c++ - 在远程机器上展开注册表环境变量字符串