以编程方式允许对注册表项进行写访问

Ker*_*ido 5 c++ registry winapi

在产品安装过程中,我需要以编程方式修改已知注册表项上的访问描述符。我希望它的工作方式是:

  1. 安装程序在管理模式下运行。
  2. 创建一个注册表项。
  3. 一个函数(我需要的一个函数)从键中查询ACL。
  4. 如果此功能发现组“用户”已经具有写访问权,则不应执行任何操作。
  5. 如果不是,则应添加新的权限,以允许对“用户”组进行写访问。
  6. 权限被保存为注册表项。

这个问题类似于使用.NET设置注册表项写权限,但是,我需要C ++ / Win32实现。

提前致谢

Luk*_*uke 4

要获取和设置密钥的 ACL,您需要使用 RegGetKeySecurity 和 RegSetKeySecurity。然后,您需要遍历 ACE,检查任何适用于“用户”组 SID 的内容。然后,您将修改/删除现有的和/或添加新的。请注意,在普通的旧式 Win32 C 中使用 ACL 是一件痛苦的事情。