0

同じマシンで 2 つのアプリケーションを実行しています。

  1. Editor は、WinRT で開発され、サンドボックス化された Windows 8 アプリケーションです。(クライアント)

  2. Integrator は、シリアル COM ポート経由でハードウェア デバイスを読み取るための C++ アプリケーションです。(サーバ)

クライアント/サーバー通信を Windows 8 で動作させる方法について多くの検索を行ったところ、標準の WinRT クラスなどを使用しては不可能であるという投稿しか見つかりません。

私が必要としているのは、Windows 8 アプリケーションがクライアントとして機能し、スタンドアロンの実行可能ファイルがサーバーとして機能するソリューションです。

誰かがクライアント/サーバー通信を行うために使用できるメカニズムを提案できますか.

これに対する適切な解決策が見つからない場合は、ファイルの使用に頼らざるを得なくなりますが、私はその必要はありません。

明確化: クライアント/サーバー通信を行うために使用できる多くのメカニズムを認識しています。私が探しているのは、これらの手法が WinRT で開発された Windows 8 アプリケーションでは機能しないという問題の回避策です。サンドボックスは、クライアントとサーバーが同じホスト マシン上にあることを明示的に禁止するためです。

4

1 に答える 1

1

まあ、そのようなコミュニケーションは不可能だという投稿は、ほとんど正しいです。これが防止される理由は 2 つあります。

  1. サンドボックスの外にあるアプリケーションと通信できると、サンドボックスが効果的に壊れます。Windows ストア アプリは、突然、デスクトップ アプリケーションが実行できるすべてのことを実行できるようになりました。たとえば、ファイル システムへのアクセス、レジストリへのアクセスなどです。Windows ストア アプリは、ユーザーの安全を確保するためにサンドボックス内に存在します。
  2. ストアまたはパッケージからインストールした後、Windows ストア アプリは動作しません。デスクトップアプリケーションもインストールして正しく設定する必要があります。

サーバー部分を別のマシンに移動して、適切なサーバーにすることをお勧めします。何らかの理由でそれができない場合でも、次のオプションを利用できます。

  • Windows ストア アプリの分離を解除すると、TCP/IP を使用してローカル ネットワーク リソースに接続できます。を使用する必要がありますCheckNetIsolation.exeが、デスクトップ アプリケーションを個別にインストールする必要があるため、これはそれほど問題にはなりません。
  • 特定の拡張子を持つファイルを作成できます。次に、デスクトップ アプリを 1 つの拡張機能に登録し、Windows ストア アプリを別の拡張機能に登録します。これらの拡張子を持つファイルをシェル実行して、他のアプリのメッセージとして使用できるようになりました。
于 2013-07-08T19:43:03.767 に答える