Подключение Silverlight к COM-порту локального компьютера - PullRequest
3 голосов
/ 22 октября 2008

Я искал высоко и низко способ заставить мое приложение silverlight общаться с COM-портом на моем локальном компьютере. Кто-нибудь смог заставить Silverlight успешно подключиться к COM-порту вашего локального компьютера? Если да, можете ли вы указать мне на документацию.

Ответы [ 10 ]

5 голосов
/ 22 октября 2008

Нет доступа к ресурсам компьютера, но вы можете общаться с сокетами. Поэтому ваши пользователи могут установить приложение, которое прослушивает порт и связывается с COM-портом.

Почему вы пытаетесь связаться с COM-портом? Если вы ищете поддержку веб-камеры, посмотрите на взлом Jonas, который использует Flash для получения информации с веб-камеры: http://jonas.follesoe.no/WebcamInSilverlight2MacGyverStyle.aspx

5 голосов
/ 22 октября 2008

Этого нельзя сделать с помощью Silverlight.

Почему бы просто не использовать стандартное настольное приложение .NET? Если вам нужно легко развернуть через Интернет, просто используйте Click-Once для развертывания.

3 голосов
/ 15 декабря 2009

Silverlight 4 позволяет вам общаться с COM (ActiveX). Я написал статью в блоге о том, как связаться с библиотекой COM, которая поддерживает связь с последовательным портом.

http://tech -michael.blogspot.com / 2009/12 / Silverlight-говорящей к arduino.html

Обратите внимание, что упомянутый объект ActiveXperts является коммерческим.

3 голосов
/ 23 октября 2008

Вы можете сделать это, открыв соединение socket от вашего элемента управления Silverlight до локального сокета, который имеет доступ к COM-порту

2 голосов
/ 08 июля 2011

Вы все еще можете запустить его из браузера и использовать обертку, как

http://interopcom.codeplex.com/ (написано мной)

С уважением, Пол

2 голосов
/ 23 октября 2008

Я думаю, что ребята хорошо подвели итог - Silverlight находится в тесной песочнице, и вы не получите доступ к COM-порту или другим локальным ресурсам.

Итак, давайте начнем думать об альтернативах:

  • Использование ClickOnce и полноценного приложения .NET - упрощает развертывание и обновление, и вы получаете всю мощь .NET Framework.
  • Используйте XBAP (Browser Deployed WPF), который запрашивает некоторые дополнительные разрешения. Будет жить в браузере, но работать только на машинах Windows с установленным .NET 3.0 / 3.5
  • Напишите элемент управления ActiveX, который общается с устройством GPS и предоставляет API. Затем используйте JavaScript, чтобы использовать этот API и взаимодействовать с кодом JavaScript из Silverlight. Это даст вам приложение GPS в браузере, но вашим пользователям придется установить дополнительный компонент GPS ActiveX.

Cheers, Jonas

1 голос
/ 22 октября 2008

Джон,

Я на самом деле пытаюсь прочитать мой GPS из Silverlight. У меня есть интересная концепция, которую я хотел опробовать, но я пытался установить нулевую площадь установки.

1 голос
/ 22 октября 2008

Под локальным компьютером вы подразумеваете компьютер, на котором запущено клиентское приложение silverlight? Silverlight работает в изолированной программной среде безопасности, и сомнительно, что вы можете подключиться к аппаратным ресурсам следующим образом.

0 голосов
/ 17 декабря 2013

Вы можете подключить Silverlight 5 к локальному порту связи, а также к любому другому локальному ресурсу, но только с приложением 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
0 голосов
/ 08 июля 2010

Что если вы хотите, чтобы ваше приложение работало на Windows и Mac? Silverlight - хорошее решение, поскольку оно работает на обоих. Если вам нужно написать приложение WPF или элемент управления ActiveX и т. Д., Это снова приведет вас к Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...