根据 Non-Admin ActiveX Controls ,可以在当前用户下注册activeX(在安装过程中不需要管理员权限)。
我已经创建了 ATL 项目(VS2008, native )并添加了一些什么都不做的 ATL 控件。
我创建了一个 inf 文件:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
Batman.dll=Batman.dll
[Deployment]
InstallScope=user
[Batman.dll]
file-win32-x86=thiscab
clsid={2C10EC82-2BF3-4ED5-8AFC-E5146C672B3D}
FileVersion=1,0,0,1
RegisterServer=yes
将 dll 和 inf 都添加到 CAB 中并对其进行签名。
我从简单的 html 页面加载 ActiveX
<OBJECT ID="sampleControl" CLASSID="CLSID:2C10EC82-2BF3-4ED5-8AFC-E5146C672B3D" CODEBASE="Batman.cab#Version=1,0,0,1"></OBJECT>
无论如何它都不会在当前用户下注册它。
如果我指定 InstallScope=machine 加载 activeX 没有问题。
知道该怎么做吗?
谢谢
最佳答案
我遇到了同样的问题,但最奇怪的是,Apache Server 可以,而 Tomcat Server 则不行。
最后,我发现它也与Web Server设置有关。
您的网络服务器 必须支持正确的 MIME 类型映射。如果您使用 Tomcat 进行测试,请将以下内容添加到 web.xml:
<mime-mapping>
<extension>cab</extension>
<mime-type>application/vnd.ms-cab-compressed</mime-type>
</mime-mapping>
关于deployment - ActiveX 控件的非管理员注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201177/