C# 如何设置为“用户帐户值”;不得输入使用此计算机的用户和密码”;通过c代码

C# 如何设置为“用户帐户值”;不得输入使用此计算机的用户和密码”;通过c代码,c#,C#,如何设置用户帐户值“不得输入使用此计算机的用户和密码” 当计算机通电时,用户不必插入用户名和密码 通过c#code有两种方法可以做到这一点,而且两种方法都相当不安全 一种方法是清除用户的密码,在这种情况下,如果它是Windows XP或更高版本系统中唯一的用户帐户,它将自动登录 另一种方法是在HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下创建三个注册表项: DefaultUserName

如何设置用户帐户值“不得输入使用此计算机的用户和密码” 当计算机通电时,用户不必插入用户名和密码
通过c#code有两种方法可以做到这一点,而且两种方法都相当不安全

一种方法是清除用户的密码,在这种情况下,如果它是Windows XP或更高版本系统中唯一的用户帐户,它将自动登录

另一种方法是在HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下创建三个注册表项:

DefaultUserName (reg_sz): Set to the user's username DefaultPassword (reg_sz): Set to the user's password AutoAdminLogon (dword): Set to 1 to enable; 0 to disable
为什么要从代码中发送此信息?这似乎是用户应该有意识地设置的,而不是意外地对程序进行设置。这似乎不是编程问题。这一行的运行失败,出现NullReferenceException:RegistryKey winlogonKey=Registry.LocalMachine.OpenSubKey(“软件”).OpenSubKey(“Microsoft”).OpenSubKey(“Windows NT”).OpenSubKey(“CurrentVersion”).OpenSubKey(“WinLogon”,true);有什么问题?您需要确保以管理员身份运行此项,否则在读/写模式下访问该项时会遇到问题。我刚刚自己测试了它,它工作正常。我应该取什么值?CurrentVersion?…谢谢我不明白您说的是什么意思”我应该使用什么值“。我编写的所有内容都正常工作。请确保以管理员身份运行它(在提升模式下运行Visual Studio以确保可以调试它),并且它将正常工作。此代码在我的计算机中运行良好:Registry.LocalMachine.OpenSubKey(@“Software\Microsoft\Windows NT\…);
        RegistryKey winlogonKey = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows NT").OpenSubKey("CurrentVersion").OpenSubKey("WinLogon", true);
        winlogonKey.SetValue("DefaultUserName", "the_user's_username");
        winlogonKey.SetValue("DefaultPassword", "the_user's_password");
        winlogonKey.SetValue("AutoAdminLogon", 1);