我正在编写一个应用程序,需要创建一个隐藏于登录屏幕和控制面板用户小程序中的特殊用户帐户。通过与用户名下面的注册表项写0 DWORD
值,我能够实现这个目标:无法写入HKEY_LOCAL_MACHINE Software下的注册表
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows NT \ CURRENTVERSION \ Winlogon中\在SpecialAccounts \ UserList的
问题是,在UAC上的Windows 7下,无论我尝试什么,我都无法以编程方式向上述密钥写入值。
这是我的理解,写入某些密钥这是不允许在UAC的Windows 7上,除非您使用管理权限运行。我已经添加了应用程序清单requestedExecutionLevel level="requireAdministrator" uiAccess="false"
,我的程序运行时接受UAC提示,我的帐户是管理员的成员,但我仍然无法写入上述注册表项。
我还需要做什么?在任何应用程序配置中,如何在HKEY_LOCAL_MACHINE\SOFTWARE
下编写密钥和值?
更多信息...当我的程序运行时,没有错误引发,它似乎写入值。我的猜测是Windows正在虚拟化我正在写的位置。我需要写入实际位置,而不是虚拟位置,如果我要隐藏此特殊用户帐户。
他们可能正试图阻止什么你要怎样做。例如,由恶意软件编写的隐藏帐户会很糟糕。 – asawyer 2011-02-09 21:03:25
然而,这适用于HKEY_LOCAL_MACHINE \ SOFTWARE下的所有内容,而不仅仅是我提到的特定密钥。哦,你仍然可以通过使用regedit来隐藏账户,或者使用计算机管理/用户来查看它。 – sysrpl 2011-02-09 21:06:32
对不起,这只是一个关闭袖口的评论。如果我对你有一个很好的答案,我会用另一个盒子。我对这里正在发生的事情也很感兴趣。 – asawyer 2011-02-09 21:08:37