通过浏览器访问专有的USB设备.可能?也许是银光?(Java暂时被排除在外)



>可能有很多类似的问题,但由于我知道的解决方案很少,我不确定是否适合我们,所以我正在寻找其他东西,也许是新技术......

我们拥有的是这个USB设备,它不是那么花哨(当然,它需要加载驱动程序(,并且它有几个C++dll来帮助从中获得某些输出。最重要的是,我们制作了一个 C# 桌面应用程序,它以更具吸引力的方式利用了该设备(内部有大量互操作(。

到目前为止一切顺利,但是要将应用程序提升到网络上以获得更大的灵活性......有哪些选择?

已知的解决方案包括:

  • 1(ActiveX - 有点旧技术,而不是跨浏览器;
  • 2( .net "applet"> - 不太常见(这甚至是一个解决方案吗?
  • 3(Java小程序 - 众所周知,但需要JVM(因为我们选择了C++C#也许超出了范围(;
  • 4(USB设备本身上的Web服务 - 我们的设备非常光,我们不能在那里拥有它。

还有其他方法吗?Silverlight 4, 5(也许是"浏览器外"(是一个可行的解决方案吗?现在的这些新技术呢?HTML 5 什么的?

编辑1:我特别对Silverlight感兴趣。有没有办法使用Silverlight

编辑2:我发现了这个问题:Silverlight可以访问访问USB端口的.Net库吗?我能从中理解什么?Silverlight 真的不是我的方案的可行解决方案吗?

编辑3:非常重要!

这些设备需要在客户端使用!浏览的人必须在他们的PC上本地使用它们!

提前谢谢。

将应用程序提升到网络上 [...]

简单的解决方案:让网络服务器(http服务器(在连接到USB设备的PC上运行,并使用网络服务器的接口之一(如CGI(与您的USB设备通信。这样,您只需要编写USB到CGI包装程序,该程序可以是C++或C#。

另一种方法是编写浏览器插件。

您将面临的问题是浏览器中的内容通常在沙盒中运行,因此 Web 应用程序无法访问计算机。这样做有充分的理由 - 主要是安全性。在计算机上下文中运行某些代码的一种方法是拥有一个浏览器插件,该插件可以访问计算机的硬件资源,但可以与浏览器内容进行交互。不幸的是,您最终可能会为不同的浏览器编写不同的插件。

确实存在使编写浏览器插件更易于管理的框架。简单的搜索应该会找到其中一些候选人。

您可以使用Silverlight 5,它可以使您访问文件系统和USB存储设备。如果要控制其他USB设备(打印机,扫描仪等(,则应提供设备类型。我知道,Silverlight 5 在文件系统和网络摄像头上工作得很好......

最新更新