WMI 存储库中的文件关联不正确

WMI 存储库中的文件关联不正确

Windows 7 机器,据我所知,该系统唯一的奇怪之处就是我下面提到的。

我处理过大量没有扩展名的文本文件,所以不久前,我将没有扩展名的文件与 Notepad++ x64 关联。好吧,我需要与 x64 不兼容的插件的功能,最后我删除了它。

从那时起,我就尝试发出新命令,将没有扩展名的文件与安装在 x86 路径下的 32 位版本关联起来,但尽管如此,每当我尝试双击该文件时,它都会指向常规的“程序文件”路径。我多次搜索整个注册表,但找不到不存在的路径,如果我在常规程序文件路径下创建第二个 N++ 副本,它就可以正常工作,但我希望只使用一个副本。

经过进一步的工作,我想我可能已经找到了问题的根源。它似乎是我的 WMI 存储库中的一个错误条目(..\WBEM\Repository 中的 OBJECTS.DATA 文件)。不幸的是,我对此一无所知,我从 MS 读到的所有内容都告诉我,只有在万不得已的情况下才尝试重建它,而由于这只是一个错误的文件关联,我相当不愿意这样做。

有没有办法修复 WMI 存储库中的文件关联?

答案1

在讨论关联问题之前,正如我在评论中所说,WMI 是一个转移注意力的话题,WMI 代表Windows 管理规范它是一个用于获取系统信息的 API,它允许以 SQL 样式查询信息,例如,我曾用它来获取有关正在运行的进程的信息. 关于WMI 存储库

WMI 存储库“%windir%System32\Wbem\Repository”是存储 WMI 类的元信息和定义的数据库;在某些情况下,存储库还存储静态类数据。

所以我看不出你的问题可能与 WMI 存储库有关,因为它不用于文件关联或其他 Explorer 配置,也许存储库中有一些有关 Notepad++ 的信息,但与此无关。

关于您的问题,将程序与没有扩展名的文件关联的“标准”方式是使用.下的(点)扩展名HKEY_CLASSES_ROOT,有两种变体,“旧”方式:

[HKEY_CLASSES_ROOT\.]
@="Notepad++Test"

[HKEY_CLASSES_ROOT\Notepad++Test]
@="Notepad++ Test"
[HKEY_CLASSES_ROOT\Notepad++Test\shell\open\command]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" %1"

以及 Windows XP(或者可能是 Windows 2000,我不确定)中引入的“新”方法:

[HKEY_CLASSES_ROOT\.\OpenWithProgids]
"Notepad++Test"=""

[HKEY_CLASSES_ROOT\Notepad++Test]
@="Notepad++ Test"
[HKEY_CLASSES_ROOT\Notepad++Test\shell\open\command]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" %1"

Notepad++Test这是我在测试中使用的密钥的称呼,该密钥可以有任何名称,具体取决于谁创建了密钥以及如何创建)

检查那里有什么值,您还可以检查HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.\OpenWithProgids哪个是 Explorer 自动填充的每个用户的扩展列表及其关联程序(我认为这个键的优先级低于另一个键,但我不确定)。

如果您没有HKEY_CLASSES_ROOT\.创建密钥或者密钥具有正确的值,则可能您正在使用非标准方式关联文件,或许使用了配置错误的第三方程序。

答案2

该问题是由于我的 Windows Explorer 替代品(Directory Opus)的配置问题造成的。我已将其“如果未注册的文件类型看起来是纯文本,则在文本查看器中打开它们”设置配置为使用该应用程序的 64 位版本。

翻译:PEBKAC 总问题。呃!

相关内容