2013-07-04 51 views
0

我有兩個應用程序運行在同一臺機器上。我需要一個Windows 8 WinRT應用程序來與一個獨立的應用程序進行通信,編寫的代碼是C

  1. 編輯器,是一個Windows WinRT開發的應用程序,是沙盒。 (客戶端)

  2. Integrator是一款用於通過串行COM端口讀取硬件設備的C++應用程序。 (服務器)

我已經做了很多關於如何讓客戶機/服務器通信在Windows 8, 工作,只能找到職位,說它使用標準的WinRT類等是不可能的搜索

我需要的是一個解決方案,其中Windows 8應用程序作爲客戶端,獨立的 可執行文件作爲服務器。

有人可以請建議一種機制,可以用來做客戶端/服務器通信。

如果我們無法找到一個好的解決方案,那麼我們將不得不訴諸使用文件,我寧願不必這樣做。

說明:我知道可以用來做客戶端/服務器通信的許多機制。 我正在尋找的是解決問題的方法,其中這些技術不適用於使用WinRT開發的Windows 8應用程序 。由於沙盒明確禁止客戶端 和服務器在同一臺主機上。

+0

有很多[進程間通信](http://en.wikipedia.org/wiki/Inter-process_communication)原語。我相信你會找到一個能爲你工作的人。 –

+0

是的,不幸的是,其中大多數不允許在WinRT中使用。它明確禁止在同一臺機器上運行的客戶端/服務器進程之間的通信。 –

+0

TCP/IP如何? – sLedgem

回答

1

那麼,帖子指出這種溝通是不可能的,大多是正確的。有兩個原因,爲什麼會被阻止:

  1. 能夠與沙箱外的應用程序進行通信有效地打破了沙箱。 Windows Store應用程序現在突然能夠完成桌面應用程序可以執行的所有操作:訪問文件系統,註冊表... Windows Store應用程序存在於沙箱中,這是爲了讓用戶安全。
  2. Windows Store應用程序在從商店或包中安裝後無法使用。它需要安裝桌面應用程序並正確設置。

我建議你嘗試將你的服務器部分移動到不同的機器上,並使其成爲合適的服務器。如果由於某種原因你真的不能做到這一點,你仍然可以有以下選擇:

  • 您可以使用TCP/IP連接本地網絡資源,如果您刪除您的Windows商店應用的隔離。您將需要使用CheckNetIsolation.exe,但由於您已經需要單獨安裝桌面應用程序,因此這應該不是什麼大問題。
  • 您可以創建具有特定擴展名的文件。然後註冊一個擴展程序的桌面應用程序和另一個擴展程序的Windows應用商店應用您現在可以使用這些擴展名來執行文件,以將其用作其他應用程序的消息。
相關問題