Мне нужно увидеть тип компонента, то есть имя запрограммированного класса, щелкнутого элемента управления в другом процессе. Мне нужен тип, чтобы я мог реагировать на элемент управления, а затем выполнять некоторые задачи автоматизации. Сейчас я делаю следующее: 1. I FindWindow() из Win32, чтобы найти дескриптор главного окна процесса. 2. Затем я получаю вызов EnumChildWindows(), также из Win32, и получаю дескрипторы окон всех дочерних элементов главного дескриптора окна. 3. Теперь это становится сложно. Когда я вызываю GetClassName(), он возвращает WindowsForms10.STATIC.app [...], поскольку элементы управления, которые я пытаюсь прочитать, являются обычными.Получить компонентный тип пользовательского .NET-класса из дескриптора окна
Как я могу получить тип элемента управления щелчком, используя дескрипторы окна из EnumChildWindows()? Является ли то, что я пытаюсь сделать, даже возможно? Я изучал использование SendMessage() из Win32 в процесс, но кажется, что не существует сообщений, определенных системой, которые могли бы помочь.
Большое вам спасибо за ваш быстрый ответ. Я много читал в API Win32 без везения. :(Мне нужно увидеть класс верхнего уровня, чтобы я мог предсказать, что пользователь пытается сделать. Мне не нужно больше взаимодействовать с элементом управления. Я запрограммировал Hook для чтения положения мыши в приложении. То, что мне тогда нужно сделать, - это прочитать, какой тип компонента был нажат. Кастинг в AutomationElement также не помог, так как свойства не установлены должным образом. Я видел, что ManagedSpyLib может читать тип компонента, но он не был скомпилирован. NET 4.0, поэтому мне нужна программа сама. – prettyCode
Если вы нашли ответ полезным, вы можете нажать на стрелку вверх. Если он отвечает на ваш вопрос, нажмите зеленую галочку под стрелками. – msteiger