Шпион ++ для приложений PowerBuilder

Да, алгоритм хеширования всегда выдает один и тот же результат. Если вы используете одну и ту же соль, это также всегда будет давать один и тот же результат для данного входа.

6
задан Frerich Raabe 18 June 2009 в 08:45
поделиться

2 ответа

Во-первых, простой ответ: я думаю, что то, что вы пытаетесь сделать, вроде как сделано. Rex из Enable делает то, что я думаю, вам нужно, но IIRC, если говорить с разработчиками, это зависит от обработчиков кода, встроенных в приложение.

Это наводит на мысль, что я не думаю, что вы сможете делать то, что я думаю, вы пытаетесь делать полностью извне из приложения. Вы можете захватывать оконные дескрипторы с помощью WinAPI и делать с ними некоторые базовые вещи, но не так много, как вам нужно. И получить информацию о DataWindows с помощью WinAPI? Забудь это.

Я полагаю, Я слышал об API, подобном тому, о котором вы спрашиваете, но я никогда не слышал, чтобы кто-то другой, кто производители инструментов автоматизированного тестирования использовали его. Если это правда (и качество этой информации примерно такое, как «слышал это в коридоре»), я подозреваю, что это может быть связано с некоторыми проблемами безопасности приложений. (Я знаю , что вы никогда не захотите заразить мое приложение или выискивать мои секреты. ухмылка )

Даже с подключениями к пространству памяти PowerBuilder VM, я Мне не известно, что можно получить список объектов в памяти без каких-либо хуков фреймворка PowerScript (например, заполнение списка при каждом открытии и конструкторе с помощью дескрипторов объектов). Получив дескриптор окна, вы можете легко перемещаться по его массивам элементов управления (и массивам элементов управления его подклассов), чтобы получить список объектов в окне, но такие вещи, как дескрипторы переменных экземпляра NVO, будут проблематичными.

Я восхищаюсь этой идеей. Хотел бы я получить лучшие новости (кроме, может быть, Рекс может решить вашу проблему без головной боли, связанной с тем, чтобы делать это самому). Теперь я с нетерпением жду того, что может выпустить eran! ухмылка

Удачи,

Терри.

6
ответ дан 10 December 2019 в 02:52
поделиться

Я только что создал такой инструмент, но немного схитрил. Собственно, собирался задать себе тот же вопрос в группах новостей PB. Мое решение состоит из двух частей:

Шпионский инструмент - автономное приложение, похожее на Spy ++, то есть позволяет перетаскивать цель на элемент управления, используя функции Windows API (хотя и написанные на PB).

Внутренняя инфраструктура для целевых приложений - находится у предка всех окон приложения. Получив определенный (оконный) дескриптор, он проходит через массив Control [] и ищет элемент управления, дескриптор которого совпадает с заданным. Если необходимо, он также рекурсивно переходит в контейнеры элементов управления, такие как вкладки.

Когда пользователь выбирает элемент управления, шпионский инструмент сначала ищет его содержащее окно с помощью Windows API. При обнаружении инструмент отправляет в это окно настраиваемое сообщение, которое затем обрабатывается инфраструктурой приложения. Затем элемент управления размещается в приложении PB, и его детали, наконец, отправляются обратно в шпионский инструмент, который представляет их пользователю.

Я подозреваю, что часть инфраструктуры можно заменить какой-то внешней вещью, как я видел инструменты, которые, кажется, могут это сделать (Visual Expert, QTP). Однако у меня не было времени на дальнейшие исследования, и это решение было относительно легко разработать.

Я должен сказать, что ваш вопрос возник в неожиданное время. См. этот мой недавний вопрос . Если вас интересует созданный мной инструмент,

3
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: