2010-09-18 7 views
11

ब्राउज़र-आधारित तकनीक मुझे क्लाइंट के वर्तमान कनेक्ट किए गए यूएसबी डिवाइस - विशेष रूप से नाम और डिवाइस आईडी से पूछने की अनुमति देगी। बेशक, मैं ग्राहक के साथ ऐसी गतिविधि की अनुमति देने और पुष्टि करने के लिए ठीक हूं।यूएसबी डिवाइस कैसे प्राप्त करें ब्राउज़र से सूची

मुझे कम स्तर पर परवाह नहीं है, यह डब्लूएमआई, सीधी पहुंच या किसी अन्य प्रकार की एक्सेस लेयर का उपयोग करता है, मैं चाहता हूं कि यह ब्राउज़र के भीतर से इसका उपयोग करने में सक्षम हो। मैं कोड नमूने की सराहना करता हूं और मैं ब्राउज़र-स्वतंत्र समाधान से अतिरिक्त खुश हूं।

+1

...यह वास्तव में –

+0

@Matti Virkkunen के लिए यह वेबसाइट पर कस्टम यूएसबी डिवाइस पंजीकृत करने के लिए क्या है। यह अच्छा होगा कि उपयोगकर्ता साइट पर जाकर डिवाइस में प्लग करता है, और डिवाइस स्वचालित रूप से पहचाना जाता है। – luvieere

+1

+1 दिलचस्प सवाल। यह स्पष्ट है कि ब्राउज़र-स्वतंत्र समाधान असंभव है। फिर भी कुछ बैंकिंग जैसे होम बैंकिंग को वास्तव में बैंक द्वारा प्रदान किए जाने वाले कुछ विशेष यूएसबी डिवाइस की तलाश करने की आवश्यकता हो सकती है। – Oleg

उत्तर

3

मैं कम से कम मुझे आंशिक समाधान देने की कोशिश करने की कमी से थोड़ा निराश हूं। हालांकि मैं ब्राउज़र-स्वतंत्र समाधान नहीं ढूंढ पा रहा था, लेकिन मैं विंडोज़ पर आईई के लिए एक के साथ आया, डब्लूएमआई का उपयोग करके, अधिक सटीक WbemScripting.SWbemLocator ActiveX ऑब्जेक्ट। यह कुछ भी नहीं है, "आप ऐसा नहीं कर सकते" से बेहतर है।

तो, किसी और रुचि के लिए, यहाँ यह है:

function pollConnectedDevices() 
    { 
    var locator = new ActiveXObject("WbemScripting.SWbemLocator"); 
    var conn = locator.ConnectServer(".", "root\\cimv2"); 
    var result = conn.ExecQuery("Select * From Win32_USBHub"); 
    var enumer = new Enumerator(result); 

    for (;!enumer.atEnd();enumer.moveNext()) 
    { 
     var hub = enumer.item(); 

     alert(hub.Name + " " + hub.DeviceId); 
    } 

    setTimeout("pollConnectedDevices()",1000); 
    } 
    setTimeout("pollConnectedDevices()",1000); 

हाँ, यह केवल IE विंडोज पर चल रहा है। हां, इसे उपयोगकर्ता की अनुमति करने की अनुमति की आवश्यकता है। लेकिन, हाँ, यह कुछ है, यह संभव है, यह वही करता है जो मुझे करने की ज़रूरत है।

यदि कोई और तरीका जानता है - और मैं यहां कोड के बारे में बात कर रहा हूं, राय नहीं, मैं अभी भी अन्य ब्राउज़रों और ओएस के लिए आंशिक समाधान ढूंढ रहा हूं। यूएसबी डिवाइस पूछताछ एक दिलचस्प बात है और सभी तर्कों के बावजूद, मैं कहता हूं कि "यह सॉफ्टवेयर है, यह कुछ करना है, आपको कुछ करने से नहीं रोकता"।

5

आप ब्राउज़र से (कारणों से) ऐसा नहीं कर सकते हैं। आपको कुछ प्लग-इन की आवश्यकता होगी जिसे उपयोगकर्ता को इंस्टॉल करना होगा।

+1

शैतान विवरण में है, और यह जवाब काफी संत है। अच्छा, हालांकि, प्लग-इन प्रकार> भाषा संस्करण> भाषा मॉड्यूल/लाइब्रेरी> नमूना कोड के बारे में विनिर्देशों के साथ इसे थोड़ा मसाला करने के लिए अच्छा हो। – luvieere

+0

@luvieere: मेरा उत्तर उस जानकारी तक ही सीमित है जो यूएसबी (या कोई अन्य) हार्डवेयर से पूछताछ (दूर) क्लाइंट साइड वेब सॉफ़्टवेयर के बाहर होने की अनुमति है। आपको प्लेटफॉर्म-विशिष्ट प्लगइन्स की आवश्यकता होगी जिसे उपयोगकर्ता को विशेष रूप से अनुमति देना होगा। कुछ उपयोगकर्ता ऐसा करने में सक्षम नहीं होंगे। –

+0

@luvieere: दुर्भाग्य से आपके लिए यह सबसे अच्छा जवाब है। आपको क्लाइंट मशीन पर किसी प्रकार का तृतीय पक्ष कोड (अपने वेब ऐप और क्लाइंट के ब्राउजर के बाहर) तैनात करना होगा। इसे ध्यान में रखते हुए, प्रत्येक प्रकार के ओएस पर प्रत्येक प्रकार के ब्राउज़र के लिए प्लग-इन लिखने के बजाय क्रॉस-प्लेटफ़ॉर्म ऐप लिखना आसान हो सकता है। अगर मैं आप थे तो मैं एक बहुत ही सरल और सरल .NET या जावा ऐप के लिए जाऊंगा। –

1

आपको इसके लिए एक प्लगइन लिखना होगा।

+1

इसे मददगार बनाएं, कुछ विवरण जोड़ें। क्या विशिष्ट तकनीक, क्या मॉड्यूल, किस तरह की पहुंच? – luvieere

0

मानक जावास्क्रिप्ट के साथ ऐसा करना असंभव है।

ActiveX (केवल आईई और विंडोज) या फ़्लैश या ब्राउज़र एक्सटेंशन (प्रति ओएस) के साथ काम कर सकता है।

+0

फ्लैश वादा करता है। विस्तृत करें, कृपया। – luvieere

+0

मुझे नहीं लगता कि फ्लैश ऐसा कर सकता है। लेकिन शायद कोई अलग जानता है? –

2

आईई ActiveX, आईई टूलबार, नेटस्केप प्लगइन रैपर (ओपेरा/विंडोज़, फ़ायरफ़ॉक्स/विंडोज़, शायद क्रोम/विंडोज़ के लिए) => डब्ल्यूएमआई। संभवतया ऐसी किसी भी सामग्री को किसी भी स्केकार्ड-ग्रेड एंटीवायरस सॉफ़्टवेयर द्वारा प्रतिबंधित किया जाएगा।

आप कर सकते हैं: ए> इस तरह से जाएं, बी> यूएसबी सुरक्षा डोंगल सी बनाने के बजाए स्मार्ट कार्ड के मूल समर्थन के साथ जाएं> अपना खुद का सॉफ़्टवेयर लिखें, जो 127.0.0.1 पर वेबसर्वर शुरू करेगा और इसे जावास्क्रिप्ट से एक्सेस करेगा आपका पृष्ठ (जहां स्थापना डाउनलोड की पेशकश की जाती है)।

+0

मैं अतिरिक्त उपयोग से बचने की कोशिश कर रहा हूं जो केवल इस उपयोग के लिए है। मैं ब्राउज़र या ओएसई के कवरेज के प्रकाश में फ्लैश या सिल्वरलाइट के लिए जाऊंगा। – luvieere

+0

@luvieere: फ्लैश और सिल्वरलाइट 'सुरक्षित' तकनीकें हैं जो आपके लिए __won't__ काम नहीं करती हैं। परिभाषा के अनुसार आपको ActiveX की तरह कुछ बदसूरत की आवश्यकता होगी। –

0

एचएम, मेरे सिर के शीर्ष से, मुझे लगता है कि एक्सबीएपी आपकी मदद कर सकता है। http://www.xbap.org/। तब से यह कुछ #usblib के साथ बस सी # है।

एचएम संपादित करें, यह कहता है कि यह सैंडबॉक्स मोड में निष्पादित करता है। और ऐसा लगता है कि आईई-केवल प्लगइन है। मुझे लगता है कि एक्सबीएपी एक मिस है।

1

एक जावा एप्लेट। आप http://javax-usb.org/ का उपयोग कर सकते हैं।

और अच्छी तरह से यह जावा एप्लेट http://forums.sun.com/thread.jspa?threadID=5371360

तो एक समाधान निश्चित रूप से मौजूद है का उपयोग करते हुए किया गया है !!!