1

GetPrivateProfileString() 调用在 Windows XP 上运行良好,但在 Vista 上运行时失败并出现访问被拒绝错误。

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

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

我欢迎任何关于如何让这个电话在 Vista 上工作的建议,或者关于我可以运行以帮助找到解决方案的实验的任何建议。

谢谢

4

1 回答 1

-1

Parts of the Windows registry are locked down in Vista for security reasons.

For example if you are trying to access the HKEY_LOCAL_MACHINE this will fail for a user with out the correct privileges.

If you give the user a sufficient privilege level they will be able to access the registry but the recommended approach is to move the registry settings to the HKEY_CURRENT_USER branch of the registry, since this is not locked and is accessible by all users.

于 2009-07-28T07:15:02.237 回答