2011-09-29 54 views
0

我有一个传统的USB设备驱动程序,它将数据从Windows注册表中读取并写入到HKEY_LOCAL_MACHINE/SOFTWARE/COMPANY/PRODUCT。 我不能改变这个,所以我需要一个解决方法,因为我注意到在启用了UAC的Windows Vista和Windows 7上,执行写入的函数返回一个错误。我的猜测是,根本没有访问权限。授予应用程序访问UAC受保护的注册表部分

我目前的解决方法是使用管理权限启动我的应用程序,但您可能猜到这不是一个很好的解决方案。由于当USB设备在应用程序启动时被初始化时访问注册表,我也不能简单地请求重新启动。

我知道我可以通过我的安装程序(使用管理权限运行)为系统上的某些文件夹授予访问权限,但是有什么类似的办法可以将此授予此特定注册表项? (我希望授予和撤销命令)

回答

0

应该避免给非管理员用户写入HKLM权限。但是,如果您仍然需要这样做,则可以使用SetACL来设置/删除权限。 SetACL可作为独立的命令行可执行文件和COM对象提供。

相关问题