質問

SilverlightアプリケーションがローカルコンピューターのCOMポートと通信する方法を探しています。誰かが、SilverlightをローカルコンピューターのCOMポートに正常に接続できるようにしましたか?その場合は、ドキュメントを参照してください。

役に立ちましたか?

解決

これは、Silverlightでは実行できません。

標準の.NETデスクトップアプリを使用するだけではどうですか?ウェブ上に簡単にデプロイする必要がある場合は、Click-Onceを使用してデプロイするだけです。

他のヒント

コンピューターリソースにはアクセスできませんが、ソケットと通信できます。そのため、ユーザーにポートでリッスンし、COMポートと通信するアプリケーションをインストールさせることができます。

なぜCOMポートと通信しようとしているのですか? Webカメラのサポートを探している場合は、Flashを使用してWebカメラの入力を取得するJonasのハックをご覧ください。 http://jonas.follesoe.no/WebcamInSilverlight2MacGyverStyle.aspx

これを行うには、Silverlightコントロールから、インターンがCOMポートにアクセスできるローカルソケットへのソケット接続を開きます

Silverlight 4では、COM(ActiveX)と通信できます。シリアルポートとの通信をサポートするCOMライブラリとの通信方法に関するブログ記事を書きました。

http://tech-michael.blogspot .com / 2009/12 / silverlight-talking-to-arduino.html

言及されているActiveXperts-objectは商用であることに注意してください。

連中はうまくまとめていると思います-Silverlightはサンドボックス内にあり、COMポートや他のローカルリソースにアクセスできません。

それでは、代替案について考え始めましょう:

  • ClickOnceと完全な.NETアプリケーションを使用する-展開と更新が簡単になり、.NETフレームワークの全機能を利用できます。
  • 追加のアクセス許可を要求するXBAP(Browser Deployed WPF)を使用します。ブラウザ内に存在しますが、.NET 3.0 / 3.5がインストールされたWindowsマシンでのみ実行されます
  • GPSデバイスと通信してAPIを公開するActiveXコントロールを記述します。次に、JavaScriptを使用してこのAPIを使用し、SilverlightのJavaScriptコードとやり取りします。これにより、ブラウザ内にGPSアプリケーションが作成されますが、ユーザーは追加のGPS ActiveXコンポーネントをインストールする必要があります。

乾杯、 ジョナス

ブラウザから実行して、次のようなラッパーを利用できます

http://interopcom.codeplex.com/ (私が作成)

よろしく、 ポール

ローカルコンピューターとは、silverlightクライアントアプリが実行されているコンピューターのことですか? Silverlightはセキュリティサンドボックスで実行され、そのようなハードウェアリソースに接続できるかどうかは疑わしいです。

ジョン、

実際に、SilverlightからGPSを読み取ろうとしています。試してみたい面白いコンセプトがありますが、インストールフットプリントをゼロにしようとしていました。

WindowsおよびMacでアプリケーションを実行したい場合はどうしますか? Silverlightは両方で実行されるため、優れたソリューションです。 WPFアプリやActiveXコントロールなどを記述する必要がある場合、これは再びWindowsにのみバインドします。

Silverlight 5をローカルComm Portおよび他のローカルリソースに接続できますが、SilverlightアプリケーションがWindows(Macではなく)で実行され、OOB(out-of-browser)またはin- Internet Explorerのブラウザ。

これを行うには、 classic COMオートメーションコンポーネントを作成し、完全信頼でアプリケーションを実行します。 Silverlight 5アプリケーションをブラウザー内で完全に信頼して実行できるように設定できるレジストリキーがありますが、アプリケーションに署名し、公開キーをローカルコンピューター上の信頼できる発行元にインポートする必要があります。

完了したら、SilverlightはAutomactionFactoryをサポートし、ローカルに登録されたcomオートメーションオブジェクトにアクセスできます。この機能は広範囲に使用しています。それは非常に強力です。この場合、SerialPortオブジェクトへのアクセスを提供するCOMコンポーネントを作成し、使用可能なすべてのポートのリストを返すメソッドを提供しました。

If AutomationFactory.IsAvailable Then
      SilPort = AutomationFactory.CreateObject("SilverPort.Ports")
      Dim AllPorts() As String
      AllPorts = SilPort.GetPortNames()
      ...
End If
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top