什么是正确的方式来获得currentuserregistrykey
本文关键字:currentuserregistrykey 方式 什么 | 更新日期: 2023-09-27 18:18:44
也许这是一个愚蠢的问题,但是
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
做的事情差不多