2008-12-16 87 views
0

我是一名Web开发人员,目前我的任务是构建一个ActiveX组件。自动安装activeX

这是我第一次使用ActiveX,我设法做出了一个实例。

但是我无法从浏览器进行ActiveX安装。当使用Visual Studio 2008进行安装并运行网页时,所有工作都按预期工作,当我没有安装它时,我会期待类似于Windows更新的问题,询问我是否允许安装,但是这种情况不会发生......

这里是我怎样,我把它放在网页:

<object id="myActiveX" name="myActiveX" classid="clsid:A68B19C8-9DB4-49e4-912F-37FB44968528" 
       codebase="http://localhost/myWebSite/install.cab#version=1,0,0,0"></object> 

中的classid的GUID我为我的类创建的GUID相匹配。

任何人都可以指出我错过了什么吗?

编辑:

忘记提到这一点,我有我的ActiveX安装项目,使用一个.inf文件生成

我已经做了cab文件与一个.msi和的Setup.exe像这样:

[version] 
signature="$CHICAGO$" 
AdvancedINF=2.0 
[Setup Hooks] 
hook1=hook1 

[hook1] 
run=msiexec.exe /i %EXTRACT_DIR%\Install.msi /qf 

回答

2

你可能要检查你的IE安全设置:默认情况下,未签名的ActiveX控件被忽略。

这里的另一种可能性:

你标记您的控制为“安全执行脚本”和“安全初始化”?

我不确定这是否是您遇到的问题,因为1)您的示例HTML代码未显示您在脚本中使用该控件,并且2)表示HTML代码段未显示您设置控件属性。 但是这是一个常见的陷阱,所以如果我是你,我会看看。

IIRC这可以通过实现IObjectSafety接口或使用注册表设置来实现。

This这是2个让你开始的指针。

+0

感谢您的回复。 安全设置,我检查的第一件事。 我使用页负载的控制,如下所示:`<体的onload = “document.myActiveX.myMethod();”>` 类在我的ActiveX控件已经在实施IObjectSafety的.. 在这一点上,我很确定我的问题是在INF文件中。我已经将cad提取到了一个空的目录,修改了`run = msiexec.exe/i%EXTRACT_DIR%\ Install.msi/qf`到`run = msiexec.exe /ic:\temp\Install.msi/qf`然后右键单击该文件并单击“安装”。 这是我写的第一个INF文件,我认为这个肩膀 – Sergio 2008-12-16 13:31:08