2014-09-08 5 views
5

मैं "user32.dll" के "GetForegroundWindow" का उपयोग करके विंडो हैंडल प्राप्त कर सकता हूं और "# 32770" के साथ अपने वर्ग का नाम मिलान करके, मैं जांच सकता हूं कि यह एक संवाद है।कैसे पता चले कि एक संवाद बॉक्स VB.Net Winform ऐप का उपयोग करके एक चेतावनी या पुष्टि या संकेत है?

अब मेरा प्रश्न यह है कि मुझे कैसे पता चलेगा कि यह संवाद है और चेतावनी, पुष्टि या संवाद संवाद?

कृपया ध्यान दें कि मैं VB.Net का उपयोग कर इंटरनेट एक्सप्लोरर प्रक्रिया के बाहर काम कर रहा हूं।

उत्तर

3

संभावित संवाद के लॉट हैं। मानक वाले संदेशबॉक्स और ओपनफाइलडियलॉग, प्रिंटडिअलॉग, कलरडिअलॉग, इत्यादि जैसे खोल संवाद हैं। एक बहुत सारे और गैर-मानक वाले, इस प्रकार एक प्रोग्रामर जो एक विंडोज प्रोग्राम लिखने के लिए देशी कोड का उपयोग करता है, संसाधन संपादक के साथ बनाता है। DialogBox() winapi फ़ंक्शन द्वारा प्रदर्शित किया गया।

आपको संवाद विंडो के बारे में अधिक जानकारी प्राप्त करने की आवश्यकता होगी, Spy++ utility का उपयोग करें। यदि यह एक आम संवाद है तो आप देखेंगे कि विंडो पर हर नियंत्रण में एक आईडी है। GetDlgItem() को पिनवोक करके आप इन्हें रनटाइम पर वापस पा सकते हैं। संभवतः EnumChildWindows() की आवश्यकता है अगर वे किसी अन्य बच्चे की खिड़की के अंदर घोंसला हैं। यदि फ़ंक्शन विफल हो जाता है, तो IntPtr.Zero लौटाता है, तो आप जानते हैं कि आपके पास वह संवाद नहीं है जिसे आप ढूंढ रहे हैं। आपको GetClassName() को दोबारा जांचने के लिए भी पिनवोक करना चाहिए कि यह उस तरह का नियंत्रण है जिसे आप ढूंढना चाहते हैं।

सावधान रहें कि यह 100% सटीक नहीं हो सकता है, प्रोग्रामर आईडी को चुनते हैं जो बहुत आम हैं। बस उन्हें शुरू करने की तरह, 1 से शुरू करना, सही समय पर ऐसा करना, जब यह बहुत संभावना है कि विशेष संवाद दिखाया गया है, यह बहुत महत्वपूर्ण है।

और सावधान रहें कि माइक्रोसॉफ्ट आसानी से आपके कोड को तोड़ सकता है। वे इंटरनेट एक्सप्लोरर के अगले संस्करण में संवाद रखने का वादा नहीं करते हैं।

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

+0

रास्ता दिखाने के लिए धन्यवाद, मैं इसे आज़मा दूंगा। –

0

आप EnumChildWindow के साथ विंडो तत्वों का आकलन कर सकते हैं, और बटनों को गिन सकते हैं और कौन से खुले हैं, साथ ही आइकन की जांच भी कर सकते हैं। 6 बटन कॉन्फ़िगरेशन और 9 अलग-अलग आइकन हैं, मानते हैं कि यह एक मानक संदेशबॉक्स है।

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