也许这将是一个愚蠢的问题,但是两者之间有什么区别
RegistryKey curUser = Registry.CurrentUser;
和
RegistryKey curUser = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32);
谢谢。
最佳答案
我会说它们几乎相同。 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
差不多关于c# - 什么是获取CurrentUser RegistryKey的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33260730/