私は、SilverlightアプリケーションがローカルコンピューターのCOMポートと通信する方法を探し求めてきました。誰かがSilverlightをローカルコンピューターのCOMポートに正常に接続させることができましたか?もしそうなら、私にドキュメントを教えてもらえますか。
10 に答える
これはSilverlightでは実行できません。
標準の.NETデスクトップアプリを使用しないのはなぜですか?Webを介して簡単に展開する必要がある場合は、Click-Onceを使用して展開します。
コンピュータリソースへのアクセスはありませんが、ソケットと通信することはできます。そのため、ユーザーに、ポートをリッスンしてCOMポートと通信するアプリケーションをインストールさせることができます。
なぜCOMポートと通信しようとしているのですか?ウェブカメラのサポートをお探しの場合は、Flashを使用してウェブカメラの入力を取得する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 オブジェクトは商用であることに注意してください。
彼らはそれをうまくまとめていると思います.Silverlightはタイトなサンドボックスにあり、COMポートや他のローカルリソースにはアクセスできません.
それでは、代替案について考え始めましょう。
- ClickOnce と完全な .NET アプリケーションを使用する - 簡単な展開と更新を提供し、.NET フレームワークのすべての機能を利用できます。
- 追加のアクセス許可を要求する XBAP (Browser Deployed WPF) を使用します。ブラウザ内に存在しますが、.NET 3.0 / 3.5 がインストールされた Windows マシンでのみ実行されます
- GPS デバイスと通信する ActiveX コントロールを作成し、API を公開します。次に、JavaScript を使用してこの API を使用し、Silverlight から JavaScript コードを操作します。これにより、ブラウザー内の GPS アプリケーションが提供されますが、ユーザーは追加の GPS ActiveX コンポーネントをインストールする必要があります。
乾杯、ジョナス
ローカルコンピューターとは、Silverlightクライアントアプリが実行されているコンピューターを意味しますか?Silverlightはセキュリティサンドボックスで実行され、そのようなハードウェアリソースに接続できるかどうかは疑わしいです。
ジョン、
実際、Silverlight から GPS を読み取ろうとしています。試してみたい興味深いコンセプトがありますが、インストール フットプリントをゼロにしようとしていました。
アプリケーションを Windows と Mac で実行したい場合はどうすればよいでしょうか? Silverlight は両方で動作するため、優れたソリューションです。WPF アプリや ActiveX コントロールなどを作成する必要がある場合、これは再び Windows のみにバインドされます。
Silverlight 5 は、他のローカル リソースと同様にローカルの Comm ポートに接続できますが、Silverlight アプリケーションが Windows (Mac ではなく) で実行され、インターネットで OOB (ブラウザー外) またはブラウザー内で実行されている場合に限ります。冒険者。
これを行う方法は、従来の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