GetPrivateProfileString()调用在Windows XP上运行正常但在Vista上运行时失败并显示“拒绝访问”错误。
调用是在我编写的Windows服务产生的线程内进行的。 Windows服务本身使用本地计算机上的用户帐户凭据运行(由于代码需要访问HKCU,因此认为是必需的)。
我怀疑这与UAC或虚拟化有关。
我欢迎任何有关如何使用此功能在Vista上工作的建议,或者我可以运行以帮助找到解决方案的实验。
由于
答案 0 :(得分:0)
出于安全原因,Windows注册表的某些部分已锁定在 Vista 中。
例如,如果您尝试访问 HKEY_LOCAL_MACHINE ,对于没有正确权限的用户,这将失败。
如果您为用户提供足够的权限级别,他们将能够访问注册表,但建议的方法是将注册表设置移动到注册表的 HKEY_CURRENT_USER 分支,因为它未锁定并且所有用户都可以访问。