मैं सप्ताहों के लिए इसका समाधान खोज रहा हूं। मैं एक ऐसे तरीके की तलाश में हूं जो मैं विंडोज पीसी से जुड़े किसी स्टोरेज मीडिया की विशिष्ट पहचान कर सकता हूं। विशेष रूप से भंडारण मीडिया। इसमें आंतरिक हार्ड ड्राइव, बाहरी हार्ड ड्राइव, फ्लैश ड्राइव, एसडी कार्ड, स्मार्टफोन स्टोरेज इत्यादि शामिल नहीं हो सकते हैं। कोई ऑप्टिकल मीडिया नहीं।क्या .NET में किसी विंडोज पीसी से जुड़े किसी स्टोरेज मीडिया को विशिष्ट रूप से पहचानने का कोई तरीका है?
असल में मैं जो करना चाहता हूं, किसी विशिष्ट स्टोरेज डिवाइस से जुड़ा हुआ कुछ प्रकार की अनूठी स्ट्रिंग निर्दिष्ट करता है, इसलिए किसी भी समय स्टोरेज डिवाइस को फिर से कनेक्ट किया जाता है, ड्राइव ड्राइव के बावजूद, इसे स्वतः पता लगाया जा सकता है।
समस्याएं मैं में चलाने की है:
- हर भंडारण युक्ति एक सीरियल नंबर है
- एसडी कार्ड एक कार्ड रीडर,
ManagementObjectSearcher
वर्ग के माध्यम से जानकारी उपलब्ध WMI के माध्यम से उपलब्ध से संबंधित है के माध्यम से एक्सेस किया जाए मीडिया के बजाय कार्ड रीडर
ऐसा लगता है कि 4 मुख्य गुण हैं जो अद्वितीय जानकारी वापस कर सकते हैं, लेकिन हमेशा नहीं। SerialNumber
, Caption
, PNPDeviceID
, Signature
निश्चित रूप से वहाँ कुछ विंडोज इस तरह भंडारण उपकरणों का ट्रैक रखने के लिए करता है कि होना चाहिए। कोई विचार?
क्या आपको 100% विशिष्टता की आवश्यकता है या "समर्थित नहीं" डिवाइस या पहचान टकराव की कम संभावना स्वीकार्य हो सकती है, और यदि ऐसा है तो ये सीमाएं क्या हैं। –
@ स्कॉटकैम्बरलेन वेल, यदि संभव हो तो 100% विशिष्टता निश्चित रूप से आदर्श होगी। एक और सुझाव जो मैंने चारों ओर खोज करते समय पढ़ा था, डिवाइस पर एक फाइल को एक एप्लिकेशन-असाइन आईडी के साथ रखना था जो सॉफ़्टवेयर को स्टोरेज डिवाइस से लिंक करता है .. जो बहुत अच्छा है लेकिन उन डिवाइसों पर समस्याग्रस्त हो सकता है जिनके पास रूट पर लेखन पहुंच नहीं है निर्देशिका – user1003916
यह एक [XY प्रश्न] की तरह लग रहा है (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)। बड़े पैमाने पर, विंडोज़ * परवाह नहीं करता * आप किस प्रकार के स्टोरेज डिवाइस से जुड़े हुए हैं। अधिकांश चीजें डिवाइस ड्राइवर परत पर संभाली जाती हैं। तो, आप वास्तव में क्या करना चाहते हैं, आपको लगता है कि समाधान के लिए एक अद्वितीय आईडी की आवश्यकता है? –