Проверять объект управления delphi без изменения исходного кода
У меня есть программа Stock, разработанная Delphi, я хочу инструменты, которые могут считывать данные из программы Stock, например, цену акции в сеточном объекте Delphi.
Тестируемая программа Stock является исходным кодом, поэтому нет никаких шансов изменить исходный код, который требуется для инспектора QTP/Robot. Я не могу сказать, какую версию Delphi он использует, ни один объект не является стандартным элементом управления Delphi.
Таким образом, любой может сказать, возможно ли проверить данные объекта программы delphi с помощью другой технологии?
заранее спасибо.
2 ответа
Попытка считывания данных из сетки управления Delphi не сработает для вас. Это не похоже на стандартный элемент управления для редактирования Windows, который можно просто вызвать GetWindowText.
Если вы действительно хотите получить информацию из этой существующей программы, вам нужно будет ткнуть в ее внутреннюю память или сделать OCR на снимке экрана. Все довольно ужасно созерцать.
Вы можете использовать такой инструмент, как Winsight, чтобы узнать структуру окна программы, и использовать FindWindow и EnumerateChildWindows, чтобы найти элементы управления. Затем вы можете использовать GetWindowText API для получения текста элемента управления. Это будет работать с большинством элементов управления, но может не работать для всех. Например, элемент управления TLabel не имеет дескриптора, но выполняет его рисование. Он не имеет ручки для получения текста и не будет отображаться в WinSight. Вам нужно будет OCR окно, чтобы получить эти тексты меток.:п
Но это "тестирование" для меня больше похоже на "взлом" или "контроль", если вы даже не знаете, какие элементы управления используются и какая версия Delphi используется, почему вы тестируете эту программу именно таким образом?