Суть задачи: есть большая прога написанная на фокспро, необходимо написать для нее обучающую прогу, которая работает в интерактивном режиме, т.е подсказывает/показывает юзеру правильные действия.
Хотел решить эту задачу с помощью хуков. т.е прога сначала в режиме обучения запоминает последовательность элементов по которым тыкает юзер. Потом, в режиме тестирования, перехватывает действия юзера, анализирует их, сопоставляя с ранее сохраненными, и разрешает/запрещает эти действия или вываливает какое-либо предупреждение. Все вроде логично
Теперь суть проблемы: не могу получить описание контролов (название класса и название окна). Точнее сказать получаю, но какую-то херню.
На форме есть дофига всяких элементов от кнопок до комбобоксов, перебирая их через EnumChildWindow, определяю их класс и название. получаю что-то типа:
HWND: 4392700ClassName: AfxOleControl42WindowText:
HWND: 1836988ClassName: AfxWnd42WindowText:
HWND: 3475336ClassName: ImageList20WndClassWindowText:
HWND: 1312692ClassName: ATL:045B16E8WindowText:
….
Все названия пустые, хотя такого быть не должно. Хэндлы тоже какие-то левые, даже после отсылки им WM_CLOSE, элементы на форме так же прекрасно себя чувствуют и даже правильно работают, хотя хэндлы при этом убиваютсяо_ОПривык что в окнах чужих прог можно лазить как в своих , а тут такое..
Как это понимать?? А главное как это обойти?
Если это особенность фокспро и это нельзя обойти, то натолкните хотя бы на идейку как можно еще реализовать поставленную задачу.
Пишу на С++ билдере 2009.
С уважением
9 октября 2009 в 0:05
Попробовал сегодня IAccessible – зачетная штука, то что надо
Леонид maxleo Максимов +10
DemoShield гляну на досуге для общего развития)
8 октября 2009 в 23:05
Есть очень удобная программулька – DemoShield, как раз для демонстрации софта сделана.
7 октября 2009 в 22:05
IAccessible