2011-03-23 14 views
12

मेरे पास एक विंडोज़ मोबाइल 6.1 डिवाइस पर चल रहा एक एप्लीकेशन (नेट कॉम्पैक्ट फ्रेमवर्क 3.5) है और मैं यह जानना चाहता हूं कि यूएसबी कनेक्शन कब बदलता है (या तो कुछ कनेक्ट या डिस्कनेक्ट होता है)।यूएसबी कनेक्शन का पता लगाना - सी # नेट सीएफ़ 3.5

मैं मूल रूप से SystemProperty.CradlePresent प्रॉपर्टी का उपयोग किसी ईवेंट को ट्रिगर करने के लिए कर रहा था लेकिन मुझे आश्चर्य है कि यह केवल तभी काम करता है जब डिवाइस कनेक्टिंग में ActiveSync है? मुझे एक लिनक्स डिवाइस से यूएसबी के माध्यम से कनेक्शन प्राप्त होगा जिसमें ActiveSync पर चल रहा नहीं है।

क्या मैं अब भी यूएसबी से कनेक्ट/डिस्कनेक्ट का पता लगाने के लिए SystemProperty.CradlePresent का उपयोग कर सकता हूं? या क्या मुझे यूएसबी इवेंट का पता लगाने के लिए अन्य विकल्पों का पता लगाने की ज़रूरत है? धन्यवाद।

+1

आप यूएसबी के माध्यम से एक डब्ल्यूएम 6 डिवाइस में लिनक्स डिवाइस को कनेक्ट कर रहे हैं? यूएसबी में मास्टर/गुलाम वास्तुकला है; 2 _devices_ सीधे संवाद नहीं कर सकता है लेकिन _host_ के माध्यम से ऐसा करना चाहिए। – MSalters

+0

डब्लूएम 6 डिवाइस सिर्फ सॉकेट कनेक्शन के माध्यम से लिनक्स डिवाइस से डेटा प्राप्त कर रहा है। मैं बस यह निर्धारित करने की कोशिश कर रहा हूं कि क्या मैं उपरोक्त वर्णित सिस्टमप्रोपर्टी का उपयोग कर सकता हूं यह पता लगाने के लिए कि जब Linux डिवाइस यूएसबी के माध्यम से कनेक्ट होता है। –

+0

मैं एमएसल्टर्स के साथ हूं। ऐसा लगता है कि आप यूएसबी को पूरी तरह से समझते हैं। आप दास डिवाइस बनने जा रहे हैं। अगर यह सॉकेट के किसी रूप में बदल गया है, तो क्या हम मानते हैं कि आपके पास एक ड्राइवर है जो ऐसा करेगा? क्या टीएच ड्राइवर के पास कोई अधिसूचना है? – ctacke

उत्तर

1

this चेक आउट करें, तो आप स्रोत कोड का हिस्सा ले सकते हैं। यह एक जीयूआई के साथ सी # में लिखा है। ध्यान रखें कि जब भी आपके पास कोई प्रोग्राम चल रहा है जो नए यूएसबी ड्राइव की जांच कर रहा है, तो यह मेमोरी और सीपीयू ले जाएगा ताकि आप अंतराल को टोन करना चाहें जिस पर यह जांचता है और फिर अधीर उपयोगकर्ताओं के लिए "ताज़ा करें" बटन प्रदान करता है।

+0

उस आलेख में वर्णित विधि इवेंट हैंडलर का उपयोग करती है, न कि मतदान विधि। यह सीपीयू या स्मृति गहन नहीं होना चाहिए। – Jon

2

शायद मेरा यह पिछले प्रश्न मदद मिल सकती है:

How can I detect a USB disconnect event? (Windows, .NET C# application)

मैं के लिए सुनने और WM_DEVICECHANGE घटनाओं से निपटने के समाप्त हो गया। वे यहां निर्दिष्ट हैं: http://msdn.microsoft.com/en-us/library/aa363480(VS.85).aspx

दुर्भाग्यवश मेरे पास अब स्रोत कोड की एक प्रति नहीं है इसलिए मेरी याददाश्त थोड़ा खतरनाक है। मुझे नहीं पता कि यह समाधान आपके संदर्भ में लागू होता है या नहीं।

संबंधित मुद्दे