我试图弄清楚如何以编程方式授予“每个人”“完全控制”我们软件的注册表项,以便非管理员能够写入它。但是,我找不到这个,我找到的唯一解决方案是允许您这样做的第三方注册表组件。我不想为了能够做到这一点而安装整个第三方库。是否有可能我可以进行 Windows API 调用来执行此操作?
这将在我的自定义应用程序安装程序中完成。当然,它必须在提升的管理访问权限下完成,这是另一回事。
我试图弄清楚如何以编程方式授予“每个人”“完全控制”我们软件的注册表项,以便非管理员能够写入它。但是,我找不到这个,我找到的唯一解决方案是允许您这样做的第三方注册表组件。我不想为了能够做到这一点而安装整个第三方库。是否有可能我可以进行 Windows API 调用来执行此操作?
这将在我的自定义应用程序安装程序中完成。当然,它必须在提升的管理访问权限下完成,这是另一回事。
您需要的功能是SetNamedSecurityInfo
. MSDN 上的这个主题有可以满足您需求的示例代码:Modifying the ACLs of an Object in C++。
多年来,我们的安装程序一直在使用 cacls 在安装期间设置权限。已经很靠谱了。
只需弄清楚您需要哪些命令行参数。
这方面有很多文档。例如:http ://www.cyberciti.biz/tips/windows-change-access-permissions-from-the-command-line.html