如何在 ASP.NET 页面中使用 javascript 调用 ActiveX 控件

我正在尝试创建一个将在客户端计算机上启动应用程序的 Active X 组件。我创建了一个 Active X 控件,它在 .NET 中非常简单。它所做的只是调用 Process 类并调用 Start。

现在我希望能够从 javascript 调用此类的启动方法,并在页面上传入一些参数(然后将其作为命令行参数传递下来)。

我在这里按照指南进行操作: http://www.c-sharpcorner.com/UploadFile/mgold/HyperlinkExec03012007191054PM/HyperlinkExec.aspx

本指南讨论使用超链接启动 javascript,但我使用的是按钮。这是我的 HTML(我正在尝试使用纯 HTML 而不是 ASP.NET 来保持简单,但我最终想使用 ASP.NET)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

    <body>
        <button type="button" onclick="javascript:launch()">Click me!</button>
        <script type="text/javascript">
            function launch()
            {
                alert('test')
                var myLauncher = new ActiveXObject('CardWriterApplicationLauncher');
                myLauncher.LaunchCardWriter('test', 'test', 'test');
            }
        </script>

    </body>
</html>

当我单击按钮时,我如何收到错误“自动化服务器无法创建对象”。我知道我的 COM dll 已在 GAC 中正确注册并带有 regasm,所以我做错了什么?

此外,从网页在用户桌面上启动应用程序的任何替代解决方案将不胜感激。可以根据需要修改浏览器安全设置,因为客户端 PC 在我们的控制之下,并且位于无法访问 Internet 的专用网络上。

谢谢

stack overflow How to invoke an ActiveX Control using javascript in an ASP.NET page
原文答案

答案:

作者头像

如果您在 ActiveX 控件中有公共属性或方法,您能否不直接使用 JavaScript 调用直接引用 <Object> 的 ID 的那些?

因此,ActiveX 控件已经使用 <object> 标记加载到页面上,而您只是在调用它的方法。

作者头像

暂时扔掉浏览器,转到客户端机器,确保您可以在机器上正确创建 activex 对象,使用简单的 vb 脚本或虚拟应用程序。

创建一个名为 something.vbs 的文件,在其中放入以下代码

Set MyObj = CreateObject("CardWriterApplicationLauncher")

一旦您确认该部分正在工作,请转到您的浏览器。

您的问题可能与您的浏览器无关。

另外我刚刚注意到 CardWriterApplicationLauncher 不是有效的对象标识符,它们通常需要 .在他们中。例如 word.application