从Internet Explorer中访问硬件

时间:2009-02-02 20:24:29

标签: .net silverlight internet-explorer hardware

是否可以从Internet Explorer中访问硬件设备(网络摄像头,磁卡读卡器等)?

如果是,使用了哪些技术?是否有任何.Net示例。

在我的情况下,我需要访问将连接到客户端计算机的磁卡读卡器。网络应用程序需要能够访问阅读器并获取卡信息,然后将用于从服务器上运行的数据库访问数据表。

我看到网络摄像头被集成到网站中,想知道这是怎么做到的?因为如果可以访问网络摄像头,那么连接到USB端口的任何其他设备也应该被访问。

最后,SilverLight应用程序可以访问硬件吗?他们可以打印到连接的打印机吗?

6 个答案:

答案 0 :(得分:4)

自定义ActiveX控件可能是您最好的选择

答案 1 :(得分:2)

您可以尝试使用FullTrust WPF-Browser应用程序xbap。您需要使用ssl证书,但如果这些证书安装在客户端计算机和服务器上,则可以使用浏览器中的硬件。

当您在本地计算机上托管xbap时,您不需要证书,因此您可以对此进行测试。在测试部署时,您可以从visual studio创建证书并在服务器上安装这些证书,并让用户下载并安装这些证书。

访问硬件的另一种方法是register an application to an URL protocol。并与之沟通。这样你就可以编写像

这样的HTML
 <A href="MyScanReader://ReadTheScanNo?12345">Scan</A>

让该应用程序通过调用url将数据发送到服务器。我们使用过一次来浏览器中的应用程序。

答案 2 :(得分:1)

如果您需要硬件访问权限,那么Web应用程序是一个糟糕的选择。你必须在客户端安装一些具有足够权限来访问设备的东西,所以你最好还是编写一个只与服务器通信的完整客户端应用程序。

是的,您可以编写一个以完全权限运行的浏览器加载项,并以某种方式将数据传递给页面。但是你仍然必须确保它安装在每台客户端机器上,现在你有两个非常不同的代码库来维护。除非附加组件和/或Web应用程序仅在某种程度上有用(附加组件充当通用输入驱动程序或应用程序仍然可以接受输入而不使用附加组件),所以你是最终会让自己和用户的生活变得更加困难。

作为gregmac mentions,您甚至可能无法需要直接硬件访问。先检查出来......

答案 3 :(得分:1)

您可以访问网络摄像头using flash。我从来没有使用磁卡读卡器,但大多数条形码阅读器只是显示为键盘,并且由于它是类似的技术,因此也可以用这种方式配置读卡器。

我之前使用条形码阅读器编写了一个Web应用程序,只需在关注某些字段时进行扫描即可。 Javascript有助于处理,因此它捕获在数据末尾发送的Enter键按压等。

当焦点出现在任何允许扫描的区域时,我还在角落里出现了一个说“准备扫描”的方框。在我的情况下,它是一个库存应用程序,因此它包括数量和项目#字段。

这里有一个很好的好处是它可以在IE以外的浏览器中运行 - 这意味着你的应用程序的客户端部分将至少执行两倍的速度(IE是目前主流浏览器中最慢的)。

答案 4 :(得分:1)

确定设备是否具有可与之通信的内置Web服务器。一些指纹和读卡器提供内置的Web服务器,您只需发送命令即可处理与设备的通信。

答案 5 :(得分:0)

此处提到自定义ActiveX,可以肯定。如果您需要跨浏览器或跨平台支持,Java applet可能是更好的选择。