1.我有一个ActiveX控件——AVT,自己用VC写的,它是用来操作指纹扫描仪器的。
      在Container中调试是可以通过的,包括开启扫描,关闭扫描等等。
      其中开启扫描的接口函数是void SetEnabled();无返回值,无参数输入。
    2.这个控件我想用在网页的客户端上,通过这个控件来扫描用户指纹,取得信息后,通过response等上传到服务器。
    3.我通过VS2005建立了一个网站工程,在上面使用<object ......> 加载进ActiveX控件。
    4.代码如下:
     <head runat="server">
    <title>无标题页</title>
        <script language="javascript" type="text/javascript">
        function SetFingerScanEnabled()
        {
            var FgActivex = document.getElementById("Fp");
            FgActivex.SetEnabled();
            alert(FgActivex);
        }
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
              <object classid="667B0BC2-6390-41D5-B6C4-BACF03EF555B" codebase="../Bin/Interop.AVTLib.dll" 
                height="200" width="200" id="Fp"></object>
              <input id="Button1" type="button" value="button" onclick="javascript:SetFingerScanEnabled()" />
            </div>
        </form>
    </body>
问题描述:
    1.我在控件内部初始化的时候就已经加载了打开扫描仪的命令,但是到了网页上就不能用了。当然,控件我是已经注册过的了。
    2.我调用Javascript代码来调用控件的方法,不管用。
我在网上也查了很多的帖子,没有发现那个是能解决我的问题了,也可能是我那里疏忽了。
还有就是,我这种操作底层设备的ActiveX控件是不是本身就受到了什么限制不能用在IE里面? 
但是,我知道的是工商银行的U盾的确是操作底层设备的啊?
如果可以在网页上用这个控件,那么如何使用控件的函数?
如果那位仁兄了解这方面的资料请赐教,谢谢!!

解决方案 »

  1.   

    放在<form>外边,如下:   
    <body> 
            <form id="form1" runat="server"></form> 
            <div><input id="Button1" type="button" value="button" onclick="javascript:SetFingerScanEnabled()" /></div>
            <object classid="667B0BC2-6390-41D5-B6C4-BACF03EF555B" codebase="../Bin/Interop.AVTLib.dll" 
                    height="200" width="200" id="Fp"> </object>
        </body> 
      

  2.   

    <form id="form1" runat="server"> </form> 是在服务器端运行的,而OCX插件是在客户端运行,你那样写当然不行了
      

  3.   

    只要做过web方面的开发就应该很清楚了
      

  4.   

    <object classid="667B0BC2-6390-41D5-B6C4-BACF03EF555B" codebase="../Bin/Interop.AVTLib.dll"
                    height="200" width="200" id="Fp"> </object> 
    把codebase改成你服务器上的地址,包括服务器地址本身