我们正在迁移到Windows 7(已启用UAC),这会阻止标准用户为内部Web应用程序安装ActiveX控件。以编程方式下载并安装activex(.cab)
我可以访问本地管理员帐户,我可以运行提升,我可以轻松获取所需的.cab文件。有没有一种简单的方法来安装它们,以使.inf文件得到尊重?问题中的.inf文件包含挂钩来控制安装,所以我宁愿不要简单地在包含的.ocx文件中调用regsvr32。
基本上我想用C#模仿IE的安装过程中,随着不断出现在“Downloaded Program Files文件”的文件,所有的注册表设置正确书写等
顺便说一句,我注意到,有一个“ActiveX安装服务“可用于Win7机器,但似乎未启用/配置。
其他信息
这个问题已经被标记为重复,它肯定会出现类似于原来的问题,但在我的情况我有机会到本地管理员帐户,所以我的问题是,特别是约仿效IE安装过程而不是克服UAC限制。 @Ben提出了一个使用advpack的解决方案(通过rundll32),但我一直无法在我的环境中工作,尽管我会继续调查。
与此同时,我已经能够实现一个暴力方法,它完全复制使用IE的安装行为。这需要将文件定位到“已下载的程序文件”目录,并在提取的ocx/dll文件上调用regsvr32,然后将条目添加到以下注册表位置:
HKLM \ SOFTWARE \ Microsoft \ Code Store Database \ Distribution单位 HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ ModuleUsage HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ SharedDlls
我现在不能回答我的这个信息有疑问。
这个类似的问题可能有一些帮助:http://stackoverflow.com/questions/1769623/issue-with-cab-file-activex-installation-on-windows-vista-and-7?rq=1 – 2013-03-05 14:09:54
谢谢,但它的第三方,所以我不能重新编译控件。链接的MSDN文章(“非管理ActiveX控件”)看起来很有趣,因为它需要对.inf文件进行简单的更改,但如果可能的话,我宁愿将所有服务器端都保持原样。正如我所说,我拥有一个管理员帐户,所以我理论上能够克服UAC限制。 – weaver 2013-03-05 14:42:41