【问题标题】:ActiveX not working on client machineActiveX 在客户端计算机上不起作用
【发布时间】:2012-12-12 02:24:47
【问题描述】:

我正在尝试为一个简单的 hello world 消息框运行 activex 控件。 首先我创建了类库,现在有了 dll,然后我创建了 HTML 页面并调用了 activeX 控件:

<!DOCTYPE>
<html>
<head>
      <title>DemoActiveX</title>
</head>
<body>
   <OBJECT id="DemoActiveX" classid="clsid:400DCE17-4B26-4E59-9A88-AF39E2BE4A55">
</OBJECT>
    <script type="text/javascript">
        try {
            var obj = document.DemoActiveX;
            if (obj) {
                alert(obj.SayHello());
            } else {
                alert("Object is not created!");
            }
        } catch (ex) {
            alert("Some error happens, error message is: " + ex.Description);
        }
    </script>
</body>
</html>

当我在我的机器上尝试它时,我曾经使用 regasm /codebase "dll path" 注册 dll,它工作正常。

当我尝试在另一台机器上运行时出现问题,我按照以下步骤操作: 1) 我创建了安装项目并添加了 dll 文件。

2) 我创建了 .inf 文件并尝试了两个内容:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
ActiveX.dll=ActiveX.dll

[ActiveX.dll]
file-win32-x86=thiscab
clsid=400DCE17-4B26-4E59-9A88-AF39E2BE4A55
FileVersion=1,0,0,0

注册服务器=是

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Setup Hooks]
install=install

[install]
run=msiexec.exe /package """%EXTRACT_DIR%\DemoActiveXSetup.msi""" /qn

3) 我创建了包含 .inf 和 setup.exe 文件的 .CAB 文件 4) 将 HTML 页面中的对象更改为:

<OBJECT id="DemoActiveX" classid="clsid:400DCE17-4B26-4E59-9A88-AF39E2BE4A55" 
codebase="ActiveXCAB.CAB" ></OBJECT>  

当我试图在另一台机器上打开页面时,一个请求窗口打开了打开 CAB 的请求,当我按下是时没有任何反应!!!!!! 为什么它不打开 setup.exe 或 msi 文件? 顺便说一句,当我手动安装安装文件时,activeX 工作了!

【问题讨论】:

    标签: activex cab inf


    【解决方案1】:

    我解决了问题:) 问题是:

    1) 我以前只将 msi 文件或 setup.exe 放入 CAB 文件,但我必须将 msi 和 setup.exe 都放入并在 inf 文件中引用 setup.exe

    2) inf 文件格式错误,正确的是:

     [version]
     signature="$CHICAGO$"
     AdvancedINF=2.0
    
     [Add.Code]
     setup.exe=setup.exe
    
     [setup.exe]
     file-win32-x86=thiscab
     clsid={415D09B9-3C9F-43F4-BB5C-C056263EF270}
     FileVersion=1,0,0,0
    
     [Setup Hooks]
     RunSetup=RunSetup
    
     [RunSetup]
     run="%EXTRACT_DIR%\setup.exe"
    

    祝你好运:)

    【讨论】:

    • Guid 指的是什么?图书馆项目的clsid?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多