2009-02-02 78 views
2

是否可以從Internet Explorer中訪問硬件設備(網絡攝像頭,磁卡讀卡器等)?從Internet Explorer中訪問硬件

如果是,使用什麼技術?有沒有.Net的例子。

在我的情況下,我需要訪問將連接到客戶端計算機的磁卡讀卡器。 Web應用程序需要能夠訪問讀取器並獲取卡信息,這些信息將用於訪問服務器上運行的數據庫中的數據表。

我已經看到集成到網站的網絡攝像頭,想知道如何做到這一點?因爲如果可以訪問網絡攝像頭,那麼連接到USB端口的任何其他設備也應該可以訪問。

最後,SilverLight應用程序可以訪問硬件嗎?他們可以打印到連接的打印機嗎?

回答

4

自定義ActiveX控件可能是你最好的選擇

1

如果需要硬件訪問,然後一個Web應用程序是一個糟糕的選擇。你必須安裝一些具有足夠權限訪問設備的客戶端,所以你最好寫一個與服務器對話的完整客戶端應用程序。

是的,你可以編寫一個瀏覽器插件,它以完整的權限運行並以某種方式將數據傳遞給頁面。但是您仍然必須確保它安裝在每臺客戶端計算機上,現在您需要維護兩個完全不同的代碼庫。除非附加組件和/或網絡應用程序在某種程度上是有用的(附加組件可用作通用輸入驅動程序,或者應用程序仍然可以在不使用附加組件的情況下接受輸入),那麼您最終會讓自己和用戶的生活變得更加困難。

由於gregmac mentions,你甚至可能不需要直接硬件訪問。首先檢查出...

1

您可以訪問webcams using flash。我從來沒有使用磁卡閱讀器,但大多數條形碼閱讀器只是簡單地顯示爲鍵盤,並且由於它是一種類似的技術,所以也可以這樣配置讀卡器。

我已經編寫了一個網絡應用程序,然後使用條形碼讀取器,而您只需在專注於某些字段時對其進行簡單掃描即可。 Javascript幫助處理,所以它捕獲在數據末尾發送的Enter鍵按鈕等。

我還在角落裏有一個盒子,當焦點位於允許的任何字段時出現「準備掃描」掃描。在我的情況下,它是一個庫存應用程序,所以它包括數量和項目#字段。

這裏有一個不錯的巨大好處是它可以在除IE之外的瀏覽器中工作 - 這意味着您的應用程序的客戶端部分的執行速度至少是目前速度最快的兩倍(IE是目前主流瀏覽器中速度最慢的部分)。

0

自定義ActiveX在這裏被提及,並且是肯定的可能性。如果您需要跨瀏覽器或跨平臺支持,Java applet可能是更好的選擇。

2

您可以嘗試使用FullTrust WPF-Browser應用程序xbap。您需要使用SSL證書,但是如果這些證書安裝在客戶機和服務器上,則可以使用瀏覽器中的硬件。

當您在本地機器上託管xbap時,您不需要證書,因此您可以對此進行測試。在部署測試時,您可以從Visual Studio創建證書並在服務器上安裝這些證書,並讓用戶下載並安裝這些證書。

訪問硬件的另一種方式是register an application to an URL protocol。並與此溝通。這樣,你可以寫HTML一樣

<A href="MyScanReader://ReadTheScanNo?12345">Scan</A> 

讓該應用程序通過調用一個URL的數據發送到服務器。我們曾使用過一次從瀏覽器中啓動應用程序。

1

找出設備是否有可以與之通信的內置web服務器。一些指紋和讀卡器提供內置的Web服務器,您只需將命令發送給它們並處理與設備的通信。