我正在编写一个应用程序,需要创建一个隐藏在登录屏幕和控制面板用户小程序中的特殊用户帐户。通过写一个DWORD
将用户名值设置为 0 并添加到下面的注册表项中,我就能够实现此目标:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
问题是,在启用 UAC 的 Windows 7 下,无论我尝试什么,我都无法以编程方式向上面的键写入值。
据我了解,在启用 UAC 的 Windows 7 上,写入某些键是不允许的,除非您以管理权限运行。我添加了应用程序清单requestedExecutionLevel level="requireAdministrator" uiAccess="false"
,我在程序运行时接受UAC提示,我的帐户是管理员成员,但我仍然无法写入上述注册表项。
我还需要做什么?在任何应用程序配置中,如何在下面写入键和值HKEY_LOCAL_MACHINE\SOFTWARE
?
更多信息...当我的程序运行时,不会抛出任何错误,并且似乎会写入值。我的猜测是 Windows 正在虚拟化我正在写入的位置。如果我要隐藏这个特殊用户帐户,我需要写入实际位置,而不是虚拟位置。
可能该程序在 64 位操作系统上作为 32 位程序运行?在这种情况下,我建议您搜索您在下面创建的值Wow6432Node
的子项HKEY_LOCAL_MACHINE\SOFTWARE
.
您可以阅读有关此类虚拟化的更多信息here http://msdn.microsoft.com/en-us/library/ms724072%28VS.85%29.aspx。您可以使用KEY_WOW64_32KEY 标志 http://msdn.microsoft.com/en-us/library/aa384129%28VS.85%29.aspx在某些 API 中,能够在没有虚拟化的情况下使用完整的注册表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)