【问题标题】:GetPrivateProfileString() Gives Access Denied Error on VistaGetPrivateProfileString() 在 Vista 上给出拒绝访问错误
【发布时间】:2009-07-28 01:08:53
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: winapi uac windows-vista access-denied


    【解决方案1】:

    出于安全原因,部分 Windows 注册表在 Vista 中被锁定。

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

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

    【讨论】:

    • 澄清一下,我的问题不是访问 HKLM,而是读取位于网络共享上的 .INI 文件的设置。
    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多