也许这是个愚蠢的问题,但是
RegistryKey curUser = Registry.CurrentUser;和
RegistryKey curUser = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32);谢谢。
发布于 2015-10-21 14:30:36
我想说的是,它们几乎是一样的。Registry.CurrentUser只是一条捷径。看着https://github.com/dotnet/corefx/tree/master/src/Microsoft.Win32.Registry/src/Microsoft/Win32
您可以看到Registry.CurrentUser是这样实现的:
RegistryKey.GetBaseKey(RegistryKey.HKEY_CURRENT_USER);RegistryKey.GetBaseKey是这样的:
internal static RegistryKey GetBaseKey(IntPtr hKey)
{
return GetBaseKey(hKey, RegistryView.Default);
}Registry.OpenBaseKey也使用GetBaseKey,如下所示:
public static RegistryKey OpenBaseKey(RegistryHive hKey, RegistryView view)
{
ValidateKeyView(view);
return GetBaseKey((IntPtr)((int)hKey), view);
}我假设RegistryView.Default所做的事情与您的Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32几乎相同。
https://stackoverflow.com/questions/33260730
复制相似问题