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

时间:2009-09-03 15:01:45

标签: asp.net com 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的专用网络上。

由于

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

Set MyObj = CreateObject("CardWriterApplicationLauncher")

确认该部件正常工作后,请转到您的浏览器。

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

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