我一直在寻找一种让我的silverlight应用程序与本地计算机上的COM端口通信的方法。有没有人能够让Silverlight成功连接到本地计算机的COM端口?如果是这样,你能指出我的文件。
答案 0 :(得分:5)
使用Silverlight无法做到这一点。
为什么不使用标准的.NET桌面应用程序?如果您需要通过Web轻松部署,只需使用Click-Once进行部署。
答案 1 :(得分:5)
无法访问计算机资源,但您可以与套接字通信。因此,您的用户可以安装一个侦听端口并与COM端口通信的应用程序。
为什么要尝试与COM端口通信?如果您正在寻找网络摄像头支持,请查看使用Flash获取网络摄像头输入的Jonas的hack: http://jonas.follesoe.no/WebcamInSilverlight2MacGyverStyle.aspx
答案 2 :(得分:3)
您可以通过从Silverlight控件打开套接字连接到本地插槽,该实体具有COM端口访问权限
答案 3 :(得分:3)
Silverlight 4使您可以与COM(ActiveX)通信。我写了一篇关于如何与支持与串口通信的COM库进行通信的博客文章。
http://tech-michael.blogspot.com/2009/12/silverlight-talking-to-arduino.html
请注意,提到的ActiveXperts-object是商业用途。
答案 4 :(得分:2)
我认为这些人总结得很好 - Silverlight位于一个紧凑的沙箱中,你将无法访问COM端口或其他本地资源。
让我们开始考虑替代方案:
干杯, 纳斯
答案 5 :(得分:2)
答案 6 :(得分:1)
本地计算机是指运行silverlight客户端应用程序的计算机吗? Silverlight在安全沙箱中运行,您可以连接到这样的硬件资源是值得怀疑的。
答案 7 :(得分:1)
乔,
我实际上是想从Silverlight读取GPS。我有一个有趣的概念,我想尝试,但我试图去零安装足迹。
答案 8 :(得分:0)
如果您希望应用程序在Windows和Mac上运行,该怎么办? Silverlight是一个很好的解决方案,因为它运行在两者上。如果您必须编写WPF应用程序或ActiveX控件等,这将仅再次绑定到Windows。
答案 9 :(得分:0)
您可以将Silverlight 5连接到本地Comm端口以及任何其他本地资源,但只有Silverlight应用程序在Windows(而非Mac)下运行,并且在运行OOB(浏览器外)或在 - Internet Explorer中的浏览器。
这样做的方法是创建一个经典 COM自动化组件,并使用完全信任运行该应用程序。您可以设置一个注册表项,以允许Silverlight 5应用程序能够在浏览器中以完全信任的方式运行,但必须对应用程序进行签名,并且必须将公钥导入本地计算机上的受信任发布者。
完成后,Silverlight支持AutomactionFactory,允许您访问本地注册的com自动化对象。我们广泛使用这个功能;它非常强大。在这种情况下,我们创建了一个COM组件,可以访问SerialPort对象,并为其提供了一个返回所有可用端口列表的方法。
If AutomationFactory.IsAvailable Then
SilPort = AutomationFactory.CreateObject("SilverPort.Ports")
Dim AllPorts() As String
AllPorts = SilPort.GetPortNames()
...
End If