2010-10-03 15 views
0

我正在創建一個程序,需要在安裝在桌面上時與USB設備進行通信,但在瀏覽器中運行時無需訪問設備。希望這將消除做任何瀏覽器相關的擴展/黑客工作的需要。RIA應用程序本地安裝時與USB設備通話 - Silverlight或Flex更容易嗎?

Silverlight 4會讓我調用一個本地進程來做到這一點(大概是通過COM),還是事情仍然是沙盒?假設有這樣做(谷歌「Silverlight 4原生過程」)

會使用flex/adobe空氣更容易實現這一點?彎曲的最新版本似乎支持訪問本機進程(http://www.adobe.com/devnet/air/ajax/quickstart/articles/interacting_with_native_process.html

+0

我懷疑silverlight的可行性,除非我通過wshell com對象(不知道它是否會讀取數據),或者如果我寫自己的COM對象(我沒有真正的動機去做) – Calvin 2010-10-03 02:47:50

回答

0

我不能Silverlight的說話,但使用Flex ..

我創建一個需要 程序溝通一個USB設備,當在桌面上安裝 時, 應用程序也具有可在瀏覽器中運行的「離線」模式 。

如果我明白這一點,您需要一個可以在瀏覽器和桌面上運行的應用程序,對嗎?通常基於瀏覽器的應用程序不被稱爲「脫機」,但這就是你所說的。你真的想這麼做嗎?

在Flex中,我認爲你僅限於可以訪問的USB設備類型。打印機?可能不會!讀卡器或條形碼掃描器將像任何其他輸入設備一樣工作。 Flex將支持它們與鍵盤無關(無論是在瀏覽器中還是在桌面上)。一個USB驅動器?您應該可以通過File API(在AIR中,但不在瀏覽器中)訪問它。在AIR 1中,如果您在應用程序運行時插入了驅動器,它將無法訪問,但我相信此限制已得到糾正。不過,我不確定它是否在AIR 1.5或AIR 2中得到糾正。

USB麥克風或網絡攝像頭?它們應該可以在瀏覽器和AIR中訪問。我不確定如果在應用加載後插入它們,它們是否會被找到。

我懷疑是需要詳細說明USB設備的類型以瞭解具體情況。我將添加NativeProcess是一個AIR特定的功能,並且不會在瀏覽器中工作。

我也相信,Silverlight和Flex的瀏覽器將在訪問外部設備類似的限制,由於瀏覽器會將應用程序在沙箱中。

這是否幫助?

+0

在瀏覽器中,只有安裝爲桌面應用程序時,才需要連接到USB設備。 不幸的是,它不是一個USB麥克風或攝像頭,它是一個USB音序器。 – Calvin 2010-10-03 02:21:41

+0

感謝您注意到這些困惑,我編輯了我的問題,使其更加清晰。 – Calvin 2010-10-03 02:25:25

+0

我不確定音序器是如何工作的,但我懷疑它們被看作是鍵盤/鼠標/標準輸入設備。在AIR應用程序的上下文中,我相信你最好的選擇是使用NativeProcess與它進行通信。 – JeffryHouser 2010-10-03 15:12:13

0

Flex或Silverlight都不能直接連接到USB音序器。您需要通過您要使用的操作系統的一些本機軟件連接到驅動程序層,然後通過NativeProcess或本地TCP套接字連接Flex或Silverlight應用程序。

+0

在Flex 2應用程序中,您可以使用NativeProcess在可訪問音序器的本地機器上執行某些操作。這可以在不使用TCP套接字的情況下完成。 – JeffryHouser 2010-10-03 15:10:07

+0

的確如此。使用NativeProcess,序列器驅動程序/接口將需要在標準輸入/輸出上進行通信。所以可能需要爲此構建一個接口。我已經更新了我的答案。 – ocodo 2010-10-04 02:21:54

相關問題