ASP.NET WEBFORM在线扫描照片的实现方法

在项目开发中,需要实现在线扫描照片的功能,网上有很多这方面的资料,大多都是收费控件,破解版的控件我是没有找到,而又不想花钱去买控件,苦逼的程序猿费尽周折,想尽办法,最终还是被我解决!为了纪念这段苦逼的时光,特写此博客,希望IT大佬们不要保守,多写博客,多分享自己的技术。

设计思路:
cs版扫描代码,网上有很多,可以找到,而BS的也很多,但是大多都是ScanOnWeb控件的用法,而这个控件是一款收费的控件,而且价格不菲,一般个人用户支付比较困难,有一款控件Kodak,也有类似的功能,cs的比较好实现,而bs的我也没有实现,网上有资料,但是按照介绍配置,运行不了,希望有试验成功的人士分享成果。我采用的是一款叫做scan.ocx的控件,网上应该能找到,下载后先注册,注册方法:regsvr32,即可注册,该控件需要在兼容模式下运行,这一点很重要,然后还需要设置IE,允许未经签名的控件运行,具体设计代码如下:(该代码为根据网上资料改编)

注意设置:codebase="Scan.inf"属性这是实现客户端自动下载安装activeX控件的关键技术,另外客户端IE设置必须允许下载并安装未签名和已签名的activeX控件才可以,另外,在你的INF文件的[Scan.ocx]节中,配置file,指定Scan.cab的位置如:http://192.168.3.249:3721/Scan.cab,具体Scan.inf文件的内容如下:

     [Add.Code]
                Scan.ocx=Scan.ocx
                [Scan.ocx]
                  file=http://192.168.3.249:3721/Scan.cab(Scan.cab在服务器的位置)非常关键,根据你发布的IP修改
                  clsid={8DDD6D72-668C-44C1-91E1-C2D13B47C609}(注册键值)
                  RegisterServer=yes(注册到服务器)
                  FileVersion=1,0,0,0(版本号)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="scanner.aspx.cs" Inherits="sydweb.UI.Public_page.scanner" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>图片扫描</title>
    <meta name="renderer" content="Trident">
    <script type="text/javascript">
        function pic() {
            document.getElementById("<%=  HiddenField1.ClientID %>").value = document.getElementById("scan").PicData;
            if (document.getElementById("scan").PicData == "")
            { alert("请扫描!"); return false; }
        }
    </script>
    <script language="javascript" event="OnEnableSave" for="scan">
        document.getElementById("<%=  Button1.ClientID %>").disabled = false;;
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table style="width:800px;height:600px;border:5px;border-color:black;">
                <tr style="width:800px;height:600px;">
                    <td>
                    
                    <object id="scan" classid="clsid:8DDD6D72-668C-44C1-91E1-C2D13B47C609" codebase="Scan.inf" width="100%" height="100%" hspace="0" vspace="0"></object> //这里的codebase的属性设置就是inf在项目中的位置路径
                    </td>
                </tr>
                <tr style="width:800px;height:30px;">
                    <td align="right">
                          <asp:Button ID="Button1" runat="server" Text="保存"  Width="80px"  OnClientClick="return pic()" OnClick="Button1_Click" />
                    </td>
                </tr>
            </table>
            <asp:HiddenField ID="HiddenField1" runat="server" />
        </div>

        <script type="text/javascript">

            if (document.getElementById("<%=  HiddenField1.ClientID %>").value == "") {
                document.getElementById("<%=  Button1.ClientID %>").disabled = true;
             }
        </script>
    </form>
</body>
</html>

二、IE浏览器的设置:
ActiveX控件做为IE浏览器专门一种插件程序,在我们使用IE过程中是会经常遇到的。比如当我们使用网银或支付宝等安全要求比较高的网站,都会提示我们需要安装ActiveX控件。
  只有安装ActiveX控件以后我们才能正常登陆这些网站,以及使用这些网站的服务。一般我们安装的ActiveX控件都是带签名的,这种ActiveX控件就表明属于安全的。但是有时候当开发者开发出ActiveX控件时需要进行调试,但是这个时候还没有数字签名时,我们如何才能让IE浏览器安装调用未签名的ActiveX控件呢?这个问题就是本文让跟大家分享的内容。
  我们可以通过下面的方法来进行解决:
  1、首先打开Internet选项,在“高级”菜单中勾选“允许运行或安装软件,即使签名无效”菜单,然后确认保存。在这里插入图片描述
如何在IE浏览器中调用未签名ActiveX控件的设置方法?
  2、然后在Internet选项中继续切换到“安全”选项卡,单击下面的“自定义级别”,在弹出的菜单中勾选如下选项:在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、同样在“安全”选项卡中,选中“受信任的站点”在单击“站点”按钮,然后添加你要访问的网站的地址:

在这里插入图片描述
在这里插入图片描述

然后重新启动浏览器即可。
  4、如果想删除控件,可以在 C:\Windows\Downloaded Program Files 目录里找到控件,但是删除之前记得先关闭浏览器。

在这里插入图片描述

5、如果你是一个普通用户,运行未签名ActiveX的控件会有风险,所以尽量使用已知的安全的控件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值