проверять объект управления delphi без изменения исходного кода - PullRequest
1 голос
/ 02 июня 2011

У меня есть программа Stock, разработанная Delphi, я хочу инструменты, которые могут считывать данные из программы Stock, например, цену акции в сеточном объекте Delphi.

Тестируемая программа Stock является исходным кодом, поэтому нет никаких шансов изменить исходный код, который требуется для QTP / Robot инспектора. Я не могу сказать, какую версию Delphi он использует, ни объект не является стандартным элементом управления Delphi.

Таким образом, любой может сказать, возможно ли проверить данные объекта программы delphi с помощью другой технологии?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Вы можете использовать такой инструмент, как Winsight, чтобы узнать структуру окна программы, и использовать FindWindow и EnumerateChildWindows, чтобы найти элементы управления.Затем вы можете использовать GetWindowText API, чтобы получить текст элемента управления.Это будет работать с большинством элементов управления, но может не работать для всех.Например, элемент управления TLabel не имеет дескриптора, но выполняет его рисование.Он не имеет ручки для получения текста и не будет отображаться в WinSight.Вам нужно будет OCR окно, чтобы получить эти тексты меток.: p

Но для меня это «тестирование» больше похоже на «взлом» или «контроль», если вы даже не знаете, какие элементы управления используются и какая версия Delphi используется, почему выкто тестировал эту программу таким образом?

0 голосов
/ 02 июня 2011

Попытка считывания данных из сетки управления Delphi не сработает для вас. Это не похоже на стандартный элемент управления редактированием Windows, который можно просто вызвать GetWindowText.

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

...