代码之家  ›  专栏  ›  技术社区  ›  Dafydd Giddins

如何在asp.net页面中使用javascript调用activex控件

  •  1
  • Dafydd Giddins  · 技术社区  · 15 年前

    我正在尝试创建一个活动的x组件,它将在客户机上启动一个应用程序。我已经创建了一个活动的x控件,它在.net中非常直接。它所做的只是调用process类并调用start。

    现在我希望能够从javascript调用这个类的start方法,在页面上传入一些参数(然后作为命令行参数传递)。

    我跟着导游走到这里: 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在我们的控制下进行修改,并且在没有互联网访问的专用网络上进行修改。

    谢谢

    2 回复  |  直到 6 年前
        1
  •  0
  •   Mark Redman    15 年前

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

    因此ActiveX控件已使用 <object> 标记,而您只是调用它的方法。

        2
  •  0
  •   Toby Allen mercator    13 年前

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

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

    Set MyObj = CreateObject("CardWriterApplicationLauncher")
    

    确认零件正常工作后,请转到浏览器。

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

    另外,我刚刚注意到cardwriterapplicationlauncher不是一个有效的对象标识符,它们通常需要一个。在他们里面。如 word.application