给出下面的代码,lastuser字符串返回null,但是,如果我使用regedit查看此键,它会有与之关联的数据。 LoggedOnSAMuser是否为受限密钥?
public static string lastlogon()
{
string lastuser;
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI",false);
if (registryKey != null)
{
lastuser = (string) registryKey.GetValue("LastLoggedOnSAMUser");
}
else lastuser = "Unknown User";
return (lastuser);
}
答案 0 :(得分:3)
2个可能的问题:
LoggedOnSAMUser
密钥,很有可能
意为LastLoggedOnSAMUser
。答案 1 :(得分:0)
几乎可以肯定,64位计算机上有32位进程,因此需要registry redirection。默认情况下,32位进程从注册表的32位视图读取。但是你想从64位视图中读取。
通过请求您通过RegistryView
枚举从注册表的64位视图读取来解决问题。
答案 2 :(得分:0)
这似乎适用于Windows 7
RegistryKey thisKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey thisSubkey = thisKey.OpenSubKey(@"SOFTWARE\\fred", false);
_url = (string)thisSubkey.GetValue("_url", "*");
_port = (string)thisSubkey.GetValue("_port", 0);