HKEY_CLASSES_ROOT\CLSID 并未检索到所有子项。找不到我的 CLASSID
HKEY_CLASSES_ROOT\CLSID Not all subkeys are retrieved. Can't find my CLASSID
我已经注册了 COM 组件(shell 扩展名)。我打开了 regedit 并在上面找到了注册的 CLSID。
我需要检查密钥是否以编程方式在注册表中注册。所以我试图从代码中找到它:从 HKEY_CLASSES_ROOT\CLSID 检索所有子项。我得到了一组 ubkeys。但是我看不到带有我的 CLSID 的子项!
这是我的代码。
var res2 = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry32)
.OpenSubKey("CLSID")
.GetSubKeyNames()
.ToList();
res2.ForEach(e => Console.WriteLine(e));
On image regedit vs my code results
我尝试对 C++/WinAPI 执行类似的操作,但遇到了同样的问题。尝试 运行 它 "as admin" 并且在其他 PC 上没有成功。那么如何以编程方式获取此子项?
所以,是的,需要更改 RegistryView.Registry32 => RegistryView.Registry64
非常愚蠢和愚蠢的错误。
谢谢大家!
我已经注册了 COM 组件(shell 扩展名)。我打开了 regedit 并在上面找到了注册的 CLSID。 我需要检查密钥是否以编程方式在注册表中注册。所以我试图从代码中找到它:从 HKEY_CLASSES_ROOT\CLSID 检索所有子项。我得到了一组 ubkeys。但是我看不到带有我的 CLSID 的子项! 这是我的代码。
var res2 = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry32)
.OpenSubKey("CLSID")
.GetSubKeyNames()
.ToList();
res2.ForEach(e => Console.WriteLine(e));
On image regedit vs my code results
我尝试对 C++/WinAPI 执行类似的操作,但遇到了同样的问题。尝试 运行 它 "as admin" 并且在其他 PC 上没有成功。那么如何以编程方式获取此子项?
所以,是的,需要更改 RegistryView.Registry32 => RegistryView.Registry64 非常愚蠢和愚蠢的错误。 谢谢大家!