Не удается получить / установить текст для элемента управления "Редактировать" с помощью User32 API и C#
Я работаю над небольшой программой, которая автоматизирует использование другой программы. У меня нет проблем с использованием FindWindow(Ex) и получением / настройкой текста для всех других элементов управления в программном обеспечении, но я сталкиваюсь с дорожным блоком с использованием элемента управления Edit, который они используют. Используя Spy++, я могу найти элемент управления без проблем и могу получить / установить текст, но на самом деле он не виден. Это пользовательский элемент управления? Могу ли я получить доступ к различным элементам управления внутри пользовательского элемента управления? Я приложил несколько снимков экрана, чтобы показать, что происходит.
Используя Spy++, чтобы найти класс элемента управления:
Но он не видит заголовок "sometext"
Теперь я установлю текст для "тестирования"
Он читает текст, но это не то, что на самом деле отображается. Элемент управления по-прежнему отображает "sometext", но Spy ++ и мой собственный метод GetText видят "testing"
Наконец, я попытался закрыть его, чтобы увидеть, покрывает ли он элемент управления или что-то еще, и вот что я увидел
Он выполняет типичное сворачивание / закрытие, но все еще видна вещь типа "текстовое поле". Это созданный ими пользовательский элемент управления, внутри которого есть элемент управления? Могу ли я получить / установить там текст с надписью "sometext"? Кроме того, я просматривал и искал в окне Spy ++ "sometext" (после его обновления, конечно), и его было не где найти.
В настоящее время я делаю это, устанавливая фокус на него, который активирует курсор в поле, и использую sendkeys, чтобы очистить поле и заполнить новый текст. Это работает нормально, но я действительно не хочу использовать sendkeys на случай, если во время нажатия клавиш фокус как-то потеряется.
Кроме того, стараюсь поддерживать совместимость с.NET 2.0, если возможно. Спасибо!