Не удается получить / установить текст для элемента управления "Редактировать" с помощью User32 API и C#

Я работаю над небольшой программой, которая автоматизирует использование другой программы. У меня нет проблем с использованием FindWindow(Ex) и получением / настройкой текста для всех других элементов управления в программном обеспечении, но я сталкиваюсь с дорожным блоком с использованием элемента управления Edit, который они используют. Используя Spy++, я могу найти элемент управления без проблем и могу получить / установить текст, но на самом деле он не виден. Это пользовательский элемент управления? Могу ли я получить доступ к различным элементам управления внутри пользовательского элемента управления? Я приложил несколько снимков экрана, чтобы показать, что происходит.

Используя Spy++, чтобы найти класс элемента управления:

Но он не видит заголовок "sometext"

Теперь я установлю текст для "тестирования"

Он читает текст, но это не то, что на самом деле отображается. Элемент управления по-прежнему отображает "sometext", но Spy ++ и мой собственный метод GetText видят "testing"

Наконец, я попытался закрыть его, чтобы увидеть, покрывает ли он элемент управления или что-то еще, и вот что я увидел

Он выполняет типичное сворачивание / закрытие, но все еще видна вещь типа "текстовое поле". Это созданный ими пользовательский элемент управления, внутри которого есть элемент управления? Могу ли я получить / установить там текст с надписью "sometext"? Кроме того, я просматривал и искал в окне Spy ++ "sometext" (после его обновления, конечно), и его было не где найти.

В настоящее время я делаю это, устанавливая фокус на него, который активирует курсор в поле, и использую sendkeys, чтобы очистить поле и заполнить новый текст. Это работает нормально, но я действительно не хочу использовать sendkeys на случай, если во время нажатия клавиш фокус как-то потеряется.

Кроме того, стараюсь поддерживать совместимость с.NET 2.0, если возможно. Спасибо!

0 ответов

Другие вопросы по тегам