मेरे पास मेरे फॉर्म पर एक ट्री व्यू नियंत्रण है, और मैं खिड़की से शुरू होने वाली दूसरी विंडो के तत्वों के माध्यम से पुनरावर्ती रूप से जा रहा हूं। मैं तत्वों खोजने के लिए इस का उपयोग कर रहा:विंडोज यूआई स्वचालन सभी बाल तत्वों को नहीं दिखा रहा है?
getRecursiveElements(AutomationElement parent)
{
children = parent.FindAll(TreeScope.Children, Condition.TrueCondition);
foreach (AutomationElement child in children)
{
addToTreeView(child);
getRecursiveElements(child);
}
}
सामान्य शब्दों में, कोड ज्यादातर मामलों में काफी अच्छी तरह से काम करता है। पेड़ आबादी है और मेरे पास थोड़ा सा समर्थन कोड है जो मुझे डबल क्लिक करने की इजाजत देता है, उदाहरण के लिए, पेड़-दृश्य में एक तत्व और यह उस तत्व को लक्ष्य रूप पर हाइलाइट करेगा।
मेरा मुद्दा यह है कि, यह एक अद्भुत पेड़ उत्पन्न करता है, फिर भी कुछ लक्ष्य कार्यक्रमों के लिए कुछ तत्व गायब हैं।
इसके लिए क्या संभव कारण हो सकता है, और क्या इसके आसपास जाने का कोई तरीका है? यदि मैं user32.dll से EnumChildWindows()
पर कॉल करता हूं तो क्या वही समस्या होगी?
क्या आप इस प्रकार के तत्वों के कुछ उदाहरण दे सकते हैं जो इसे छोड़ रहे हैं? और क्या आपने एसडीके से यूस्पी या इंस्पेक्ट टूल्स द्वारा उत्पादित एक के खिलाफ अपने पेड़ की तुलना की है? यूआईए में 'विचार' की अवधारणा है, जो एक फ़िल्टर है जिसे आप जिस स्थिति को ढूंढने के लिए आपूर्ति करते हैं उसके अतिरिक्त लागू होता है। डिफ़ॉल्ट रूप से, यूआईए उन चीजों को फ़िल्टर करता है जो सामग्री तत्व नहीं हैं, इसलिए यदि आप एक सूची बॉक्स या सूचीदृश्य की गणना करते हैं, तो आपको केवल सूची बॉक्स मिलेगा, लेकिन स्क्रॉलबार या हेडर नहीं। क्या यह ऐसी चीज है जिसे आप याद कर रहे हैं, या कुछ और? – BrendanMcK