2012-10-18 111 views
2

我有in-browser Silverlight 5应用程序。需要使它与扫描仪一起工作。我可以控制SL5应用程序,并且可以开发桌面应用程序(.NET)来执行扫描部分。如何在Silverlight和桌面应用程序之间进行通信?

如何让SL应用程序“交谈”到桌面应用程序?理想情况下,我看到它如下:

  1. 我的“文档管理”在SL5上运行时,只需上传/下载文档。
  2. 当用户想要扫描时--SL5启动一些导致桌面应用程序打开的进程(?)。
  3. 如果桌面上没有应用程序 - 它会转移到网页并附带说明并下载。
  4. 当桌面应用程序打开 - SL应用程序将通过paramters,设置等
  5. 当文档扫描 - 桌面应用程序将信息传递回SL应用

有没有什么办法,使SL/WPF谈话对彼此?怎么样?

回答

0

是否可以从应用程序服务器“查看”扫描仪?通过调用托管在我的Silverlight应用程序所在的同一站点上的WCF服务,并通过发送文档来获得打印成功。您需要管理将用户链接到设备的表格。这可能意味着你根本不需要桌面应用程序,但可以将该功能放入Silverlight应用程序中。显然,从性能的角度来看,如果您传递大量图像或者拥有大量用户,这并不理想。但是,在服务器上,您可以使用完整的.net功能,这使得事情变得非常简单。

因此,您的桌面应用程序的用户界面基本上都在Silverlight中,并且内容又回到了服务器上。

如果你找到一个直接的方法来做到这一点,我会很乐意听到它。

+0

好像我知道了..不是应用程序彼此交谈 - 但我的主要taks可以直接从SL完成。 SL中有twain.dll和P-Invoke,应该在没有任何安装的情况下进行扫描。 – katit

2

我以前在silverlight应用程序中实现过扫描。它涉及到创建一个activex/dll控件并将其托管在托管.aspx页面中的silverlight应用程序旁边。控制本身是完全隐藏的,我只是用它的方法来访问扫描仪并使用本地文件系统。现在被授予,我必须将其设置为受信任的站点,并且不允许控件访问客户端计算机。那么你可以使用javascript作为silverlight代码和扫描控件之间的桥梁。为了将图像传递回Silverlight,我只是将扫描后的图像转换为base64字符串,并将其传回给javascript,然后传递给silverlight代码,然后最终将代码传递回服务器并存入图像存储库。

+0

就像我提到的 - 我已经以更清洁(IMO)的方式工作了。 Silverlight直接通过P-Invoke调用twain.dll。没有ActiveX,没有JavaScript。只需要提升的权限。所有作品“本地”我从twain驱动程序获取位图字节数组并将其转换为TIFF。 – katit

相关问题