في ويندوز، كيف يمكنني تعداد والحصول على النص من نافذة الضوابط آخر؟
سؤال
وعلى وجه الخصوص أكثر - لدي مؤشر الإطار تطبيق آخر التوالي. يحتوي هذا التطبيق على السيطرة TListControl.UnicodeClass
في مكان ما (وأنا أعلم هذا من Winspector). كيف يمكنني، وذلك باستخدام API ويندوز وأن مقبض النافذة، تذهب من خلال جميع العناصر في هذا تحكم قائمة والحصول على النص من كافة العناصر؟
ويمكنك أن تفترض أن اللغة C / C ++، على الرغم من أنني سوف تكون في الواقع باستخدام win32all لالثعبان. أن يشير إلى المكالمات API المناسبة ستكون كبيرة.
المحلول
وفوق إجابات خاطئة تماما وحتى لا تعرف ما هو PAS. وقد أجاب على هذا مئات المرات لمدة 20 عاما على عرضها كأول موضوع. يجب استخدام IPC بالطبع (RPM)
وتسأل عن أخبار: //comp.os.ms-windows.programmer.win32 لرمز
نصائح أخرى
وأنت تريد EnumWindows وEnumChildWindows للتعداد. انظر هنا للحصول على أمثلة ومعلومات الاستخدام / التحذيرات.
لنص النافذة، وبمجرد الانتهاء من HWND المناسب، وتريد <لأ href = "http://msdn.microsoft.com/en-us/library/ms633520(VS.85).aspx" يختلط = "نوفولو noreferrer "> GetWindowText بشكل عام، وضبط محددة في API إذا تم تخزين النص في مكان مختلف (على سبيل المثال: الضوابط القائمة). للتحكم معينة، سوف تحتاج إلى معرفة API محددة، وأنه قد لا يكون متاحا على الرغم من دعوات API ويندوز فقط (على سبيل المثال، تسيطر باستخدام الأدوات مالك التعادل يمكن تخزين النص في التطبيق، لا يمكن الوصول إلى Windows).