के माध्यम से एक नया ड्राइव कनेक्ट होने पर अधिसूचना प्राप्त करें मुझे यूएसबी पोर्ट, फायरवायर पोर्ट आदि के माध्यम से विंडोज सिस्टम में एक नया ड्राइव प्लग करने के दौरान पता लगाना चाहिए। मुझे WM_DEVICECHANGE संदेश से अवगत है , लेकिन इसका उपयोग करने के लिए इसे एक खिड़की खोलने की आवश्यकता है। क्या पृष्ठभूमि सी # में प्रक्रिया बनाने का कोई तरीका है जो यह पता लगाता है कि जब नई ड्राइव प्लग इन होती है?यूएसबी या अन्य माध्यमों (सी #)
पृष्ठभूमि जानकारी: मैं कंपनी हटाने योग्य ड्राइव से कीड़े को हटाने के लिए इस ऐप को लिखना चाहता हूं। नियमित एंटीवायरस सॉफ़्टवेयर इसे हटाने में विफल रहा है। हमारे पास एक स्क्रिप्ट है जो कीड़े को हटा देगी, लेकिन इसे मैन्युअल रूप से चलाया जाना चाहिए, जो प्रकोप को शामिल करने के लिए पर्याप्त नहीं है।
क्या यह और यह काम किया। एक सेवा के लिए, मुझे बस यह सुनिश्चित करना पड़ा कि मैंने एक और थ्रेड बनाया है जो अनंत लूप के साथ बनाया गया है जो एप्लिकेशन को कॉल करता है। DoEvents()। यदि आप ऐसा नहीं करते हैं, तो ड्राइवडेटेटर लटकाएगा और WM_DEVICECHANGE संदेशों को प्राप्त करने में विफल रहेगा। इसके अलावा, मुझे यह सुनिश्चित करना था कि सेवा के लिए डेस्कटॉप इंटरैक्शन सक्षम है, क्योंकि ड्राइवडिएक्टर अपने काम करने के लिए एक छिपे हुए फॉर्म का उपयोग करता है। – Phil
खुशी हुई यह मदद की! –
इस परियोजना पर वापस देखकर, मुझे एहसास है कि सेवा के साथ डेस्कटॉप परस्पर संपर्क की अनुमति देना अच्छा अभ्यास नहीं है। आजकल मैं एक नियमित निष्पादन योग्य बनाने और स्टार्टअप फ़ोल्डर में इसे छोड़ने की सलाह देता हूं। – Phil