【问题标题】:Signing an ActiveX DLL to use in Internet Explorer with VBScript使用 VBScript 签署 ActiveX DLL 以在 Internet Explorer 中使用
【发布时间】:2011-06-07 04:43:29
【问题描述】:

我用 VC++ 6 编写了一个简单的 ActiveX COM,它返回一些数据,我需要这个控件在我的公司网络上运行到 Internet Explorer 6 中的 HTML 页面,而不需要证书,也不需要更改 ActiveX 安全配置浏览器。

我已经完成的步骤:

  1. 在 VC6 上创建并注册 (regsrv32) 并从 VB6 尝试的 DLL COM 并且可以正常工作。
  2. 我尝试使用 CreateObject("testcom.myclass") 通过 html/vbscript 页面在本地运行它,它可以工作(在接受来自 IE 的所有不受信任的执行警告等之后)。
  3. 我创建了自签名根 CA 和中间证书,如下所述:http://www.top20toolbar.com/misc/codesigncert.htm 并按照那里的说明将这些证书安装在 IE 上(在来自网络的测试计算机上)。
  4. 我签署了 DLL(也来自以前的网站)并安装在测试计算机上。

尽管如此,我的脚本是不受信任的,并且我已经禁用了 IE 选项: “对未标记为安全的 ActiveX 控件进行初始化和编写脚本”它只是无法运行并给我错误 429:ActiveX 组件无法创建对象。 如果我更改启用或提示选项,它会起作用。

你能帮我解决我做错的事情吗?

非常感谢

【问题讨论】:

    标签: internet-explorer dll com activex certificate


    【解决方案1】:

    您是否将 activeX 对象标记为“脚本安全”和“初始化安全”?

    http://msdn.microsoft.com/en-us/library/aa751977(v=vs.85).aspx

    【讨论】:

    • 嗨 Saibal,我没有按照你说的那样做标记。我正在阅读网站并尝试代码,但在使用时出现错误:StringCchLength 和 StringCchCopy。这些函数是未定义的,因为我使用的是 VC++6 并且我没有 strsafe.h :\ 知道在哪里可以得到它吗?我也安装了平台 SDK
    • 尝试使用 strcpy 或类似的函数。
    • 嗨 Saibal,我设法让它在 Windows 2003 下与 StringCch* 一起工作。关键是我的项目是一个 ATL 项目,而不仅仅是一个 ActiveX 控件项目,所以使用了一些 GUID 变量在我没有的链接上描述的代码中。因为我只需要从我的组件中获取一个简单的属性,我认为它和 ATL COM DLL 就足够了,但是我应该为此创建一个 ActiveX 控件吗??
    • 最后,我使用了普通的 ActiveX 控件,并使用您发布的链接进行签名,效果非常好。非常感谢
    猜你喜欢
    • 2011-07-25
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多