GetPrivateProfileString()在Vista上提供访问被拒绝错误

时间:2009-07-28 01:08:54

标签: winapi uac windows-vista access-denied

GetPrivateProfileString()调用在Windows XP上运行正常但在Vista上运行时失败并显示“拒绝访问”错误。

调用是在我编写的Windows服务产生的线程内进行的。 Windows服务本身使用本地计算机上的用户帐户凭据运行(由于代码需要访问HKCU,因此认为是必需的)。

我怀疑这与UAC或虚拟化有关。

我欢迎任何有关如何使用此功能在Vista上工作的建议,或者我可以运行以帮助找到解决方案的实验。

由于

1 个答案:

答案 0 :(得分:0)

出于安全原因,Windows注册表的某些部分已锁定在 Vista 中。

例如,如果您尝试访问 HKEY_LOCAL_MACHINE ,对于没有正确权限的用户,这将失败。

如果您为用户提供足够的权限级别,他们将能够访问注册表,但建议的方法是将注册表设置移动到注册表的 HKEY_CURRENT_USER 分支,因为它未锁定并且所有用户都可以访问。