解决方案

解决方案

操作系统:Windows Vista Home Premium SP2

我正在进行以下更改,以便‘打开方式’和‘程序’列表中的相关程序名称更加方便用户使用:

[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache]
"C:\\Program Files\\K-Lite Codec Pack\\Media Player Classic\\mpc-hc.exe"="Media Player Classic Home Cinema"
"C:\\Program Files\\MKVToolNix\\mmg.exe"="MKV Merge"

每隔一周左右,它们就会分别恢复为“MPC-HC”和“mmg.exe”!这是为什么呢?

答案1

解决方案

您根本不应该手动编辑注册表项的内容MuiCache。每当缓存刷新时,都会从相关的可执行文件中再次读取描述,并恢复您的更改。

除了使用例如修补描述之外资料黑客,有一个内置功能在这种情况下很有用:

您还可以包含一个FriendlyAppName值,以便为系统提供应用程序的友好名称。应用程序的友好名称也可以从其可执行文件中提取,但前提是该FriendlyAppName值不存在。

来源:扩展快捷菜单

  1. 使用管理员帐户登录。

  2. Win+ ,在文本框中R键入或粘贴,然后按。regedit.exeEnter

  3. 导航到以下注册表项:

    HKEY_CLASSES_ROOT\Applications
    
  4. 找到与您感兴趣的应用程序相关的子项。如果缺少应用程序项,请按照以下步骤操作:

    a. 右键单击​​该Applications键,然后选择新建 > 键从上下文菜单中。

    b. 以可执行文件名称来命名密钥(例如whatever.exe)。

    c. 右键单击​​新项,然后创建一个shell子项。在子项open内创建一个子项shell

    d.在子项command内创建一个名为的子项open。双击该(Default)值并将其设置为可执行文件的路径,并"%1"考虑要传递给程序的参数。例如:

    "C:\Program Files\Whatever, Inc.\whatever.exe" "%1"
    
  5. 导航到以下键,其中whatever.exe是实际的可执行文件名称:

    HKEY_CLASSES_ROOT\Applications\whatever.exe\shell\open
    
  6. 右键单击右侧窗格中的空白区域,然后选择新建 > 字符串值从上下文菜单中。命名新值FriendlyAppName,并根据需要进行设置。更改将立即应用。

笔记官方文档不是最新的。FriendlyAppName曾是本来应该存储根应用程序密钥,但从 Windows XP 开始不再如此。

附加信息

FriendlyAppName

提供一种方法来获取应用程序的可本地化名称,而不仅仅是显示版本信息,因为版本信息可能无法本地化。关联查询关联字符串读取此注册表项值并回退到使用FileDescription版本信息中的名称。如果缺少该名称,则关联查询默认为文件的显示名称。

来源:应用程序注册

启动程序后,描述通常会从可执行文件中提取出来并存储在以下注册表项中以供日后使用:

HKEY_CLASSES_ROOT\Local Settings\MuiCache
HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

这些注册表项实际上映射到用户分支:

HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

进一步阅读

相关内容